如何在保持C#中的小数位的同时将字符串转换为十进制数

时间:2015-01-27 10:51:49

标签: c#

在C#中,我有一个自定义字符串" 12.10" ,当我将其转换为十进制时,它转换为 12.1 ,但我需要它也是十进制 12.10 ,请帮忙

以下是代码

 string Value = nudEngineeringYears.Value + "." + nudEngineeringMonths.Value;
 selStaff.EngineeringExperience = Convert.ToDecimal(Value);

4 个答案:

答案 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"