2013-03-04 410 views
-4

在C#中我有一個NumericUpDown控件,它表示一個浮點值,例如2.3。它可以從用戶界面增加或減少0.1。讀取和寫入浮點值到NumericUpDown

但是,此值無法以編程方式編寫或讀取,因爲它是C#中的一個int。我需要能夠讀寫這個float(或double)值。

目前編譯器迫使我把它轉換成int並丟掉小數位。這顯然是C#中的一個bug。

+4

請顯示代碼,你認爲VS迫使你投入一個整數。 – Inisheer 2013-03-04 02:13:30

+3

顯然_不是C#中的一個bug,它只是編程語言! C#與控件無關,可能(但可能不會)有錯誤。 – 2013-03-04 02:15:55

回答

2

嗯,last time I checkedNumericUpDown.Value屬性是一個小數...

decimal d = NumericUpDown.Value; 
+1

[MSDN says](http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown.value.aspx)它是一個小數... – dtb 2013-03-04 02:11:12

+0

@dtb Yowch,錯字,謝謝 – 2013-03-04 02:11:31

0

的替代選項來使用小數類型是直接把一個文本框在NumericUpDown控件的文本部分而不覆蓋向上向下按鈕。

我使用了NumericUpDown控件引發的事件,但使用數字上傳顯示前的文本框來檢索和發佈事件結果。

我建議創建一個繼承numericUpDown類的新類,並通過添加具有新名稱的方法或通過重寫NumericUpDown類的方法來添加所需的功能。

2

如果您在顯示十進制值時遇到問題,請將DecimalPlaces屬性設置爲2或更多。

0

我像這樣使用它,它爲我工作。

設置雙重價值爲NumericUpDown控件,

numericUpDown1.Value = new decimal((double)InputVal); 

,你可以從numericUpDown1獲得值象下面這樣:

double val = (double)numericUpDown1.Value; 
0

您可以使用以下方法:

double Dimension1Data = Convert.ToDouble(Dimension1.Value); 

其中Dimension1NumericUpDown控制。