在C#中我有一個NumericUpDown控件,它表示一個浮點值,例如2.3。它可以從用戶界面增加或減少0.1。讀取和寫入浮點值到NumericUpDown
但是,此值無法以編程方式編寫或讀取,因爲它是C#中的一個int。我需要能夠讀寫這個float(或double)值。
目前編譯器迫使我把它轉換成int並丟掉小數位。這顯然是C#中的一個bug。
在C#中我有一個NumericUpDown控件,它表示一個浮點值,例如2.3。它可以從用戶界面增加或減少0.1。讀取和寫入浮點值到NumericUpDown
但是,此值無法以編程方式編寫或讀取,因爲它是C#中的一個int。我需要能夠讀寫這個float(或double)值。
目前編譯器迫使我把它轉換成int並丟掉小數位。這顯然是C#中的一個bug。
嗯,last time I checked的NumericUpDown.Value
屬性是一個小數...
decimal d = NumericUpDown.Value;
[MSDN says](http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown.value.aspx)它是一個小數... – dtb 2013-03-04 02:11:12
@dtb Yowch,錯字,謝謝 – 2013-03-04 02:11:31
的替代選項來使用小數類型是直接把一個文本框在NumericUpDown控件的文本部分而不覆蓋向上向下按鈕。
我使用了NumericUpDown控件引發的事件,但使用數字上傳顯示前的文本框來檢索和發佈事件結果。
我建議創建一個繼承numericUpDown類的新類,並通過添加具有新名稱的方法或通過重寫NumericUpDown類的方法來添加所需的功能。
如果您在顯示十進制值時遇到問題,請將DecimalPlaces屬性設置爲2或更多。
我像這樣使用它,它爲我工作。
設置雙重價值爲NumericUpDown控件,
numericUpDown1.Value = new decimal((double)InputVal);
,你可以從numericUpDown1
獲得值象下面這樣:
double val = (double)numericUpDown1.Value;
您可以使用以下方法:
double Dimension1Data = Convert.ToDouble(Dimension1.Value);
其中Dimension1
是NumericUpDown
控制。
請顯示代碼,你認爲VS迫使你投入一個整數。 – Inisheer 2013-03-04 02:13:30
顯然_不是C#中的一個bug,它只是編程語言! C#與控件無關,可能(但可能不會)有錯誤。 – 2013-03-04 02:15:55