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