我对特定转换有一个有趣的问题。
当我尝试将字符串"0,3"
或"0.3"
根据UICulture
转换为Double
值时,结果为0,29999999
。我还没有找到解决方案,以便收到结果0,3
。
转换后有什么方法可以获得相同的值吗?
答案 0 :(得分:14)
double
不能代表 每个值。它保证代表整数,但这就是它。如果您需要更像“人类”近似数字的内容,请使用decimal
:
decimal val = decimal.Parse("0.3");
注意:decimal
也并不代表所有值 - 但它的近似方式往往更像人们期望数字的工作方式。特别是double
对货币这样的东西几乎没用。