在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