问题描述
|
为什么
double.parse (\"1833.35\")
返回值1833.349999999999
?
解决方法
如果需要绝对正确,则可以切换为使用小数而不是双数。小数存储以10为底的指数的数字。
无法使用double或float精确表示0.35。
, 这是因为浮点值在机器中用二进制指数表示,而10不是2的偶数幂。因此,某些以10为底的分数在转换时会变成重复的分数。
为了说明这一点,只需弄清楚如何用二进制表示35/100。