为什么double.parse ("1833.35")
会返回值1833.349999999999
?
答案 0 :(得分:6)
这是因为浮点值在机器中用二进制指数表示,而10不是2的偶数幂。因此,一些基数为10的分数在转换时会变成重复分数。
为了说明,只需弄清楚你如何用二进制代表35/100。
答案 1 :(得分:1)
如果您需要绝对正确,可以switch to using a decimal而不是双倍。十进制存储具有基数10指数的数字。
无法使用double或float来表示.35。