8.00000000000000100000.toFixed(20)怎么等于8.00000000000000177636
How is 8.00000000000000100000.toFixed(20) equal to 8.00000000000000177636?
我正在尝试使用浮点数,然后我遇到了一些奇怪的事情。我做了
8.00000000000000100000.toFixed(20)
,得到
8.00000000000000177636
这怎么可能?我听说浮点数是四舍五入的,但这个似乎不四舍五入。它是否与toFixed
中转换为字符串有关?
来自维基百科:
有理数是否有终止展开取决于基数。例如,在以10为基数的情况下,数字1/2有一个终止展开(0.5),而数字1/3没有(0.333…)。在以2为底的情况下,只有分母为2的幂的有理数(如1/2或3/16)是终止的。任何有理数的分母中有一个质数因子而不是2,都有一个无限的二进制展开式。这意味着,当以十进制格式写入时看起来是短而精确的数字,在转换为二进制浮点数时可能需要进行近似。
相关文章:
- 没有找到相关文章