2013-03-04 370 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控制。