在C#中,我有一个自定义字符串" 12.10" ,当我将其转换为十进制时,它转换为 12.1 ,但我需要它也是十进制 12.10 ,请帮忙
以下是代码
string Value = nudEngineeringYears.Value + "." + nudEngineeringMonths.Value;
selStaff.EngineeringExperience = Convert.ToDecimal(Value);
答案 0 :(得分:2)
十进制值12.1或值12.10之间没有区别。
如果要显示带小数点后2位的小数,请在ToString中指定格式字符串:
myDouble.ToString("0.00");
答案 1 :(得分:1)
好吧,因为数学仍然存在
12.1 == 12.10 == 12.100 == ...
等。但是,您可以通过格式化将数字表示更改为字符串:
12.1.ToString("F2"); // <- return 12.10 (note "2" in formatting string)
12.1.ToString("F3"); // <- return 12.100 etc.
答案 2 :(得分:1)
没有小数12.10
,只有12.1
。
当您说12.10
是该值的可能表示时,您所说的是什么。
在讨论数字时,12.10和12.1之间没有区别,但字符串 "12.10"
和字符串 "12.1"
。
所以不要将数字与其表示混淆(通常只在前端有用)。
如果要格式化您的值,请创建一个字符串表示形式。请参阅Standard Numeric Format Strings。
答案 3 :(得分:1)
当转换为字符串时,您似乎将浮点数的内部/二进制表示与其表示混淆。
在内部,浮子一直有大约七个位置, 一个双倍的约15个精确的位置,甚至更多的小数。
只有将这样的二进制值格式化为字符串时,才可以指定显示的位置数。使用您需要的格式格式化.ToString(format)
。在您的情况下"F2"