8.00000000000000100000.toFixed(20)怎么等于8.00000000000000177636

How is 8.00000000000000100000.toFixed(20) equal to 8.00000000000000177636?

本文关键字:00000000000000177636 00000000000000100000 toFixed      更新时间:2023-09-26

我正在尝试使用浮点数,然后我遇到了一些奇怪的事情。我做了

8.00000000000000100000.toFixed(20)

,得到

8.00000000000000177636

这怎么可能?我听说浮点数是四舍五入的,但这个似乎不四舍五入。它是否与toFixed中转换为字符串有关?

来自维基百科:

有理数是否有终止展开取决于基数。例如,在以10为基数的情况下,数字1/2有一个终止展开(0.5),而数字1/3没有(0.333…)。在以2为底的情况下,只有分母为2的幂的有理数(如1/2或3/16)是终止的。任何有理数的分母中有一个质数因子而不是2,都有一个无限的二进制展开式。这意味着,当以十进制格式写入时看起来是短而精确的数字,在转换为二进制浮点数时可能需要进行近似。

相关文章:
  • 没有找到相关文章