为什么(73).toString(36)返回21(0.73).toString(36)返回0.qa2voha2volfpsnhmyhqia4i而不是0.21?

最佳答案

这是因为浮点数存储为二进制分数(一个数字除以2的幂),而73/100不能表示为二进制的非重复分数。因此在内部,它存储的值接近0.73但不完全相等。这就是为什么在toString()方法中获得如此多的数字的原因。

73/100也不能表示为基数为36的非重复分数。通常,对于分数a / b,如果可以减少,则只能在给定基数x的小数点后获得固定位数。对于某些整数c和n,a / b的形式为c /(x ^ n)。

关于javascript - JavaScript Number.toString(radix)行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28465823/

10-12 01:01