Javascript Number.toString(基数) 行为

标签 javascript numbers radix

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

最佳答案

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

73/100 也不能表示为以 36 为基数的非重复分数。一般来说,对于分数 a/b,您只能在给定基数 x 中获得小数点后固定位数,如果对于某些整数 c 和 n,您可以将 a/b 简化为 c/(x^n) 形式。

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

相关文章:

java堆栈跟踪的行号与hadoop lib不匹配

c# - 从基类访问继承的类属性

javascript - 计算文本区域中的字符数

javascript - Kendo TreeList 绑定(bind)不会保留在行编辑上

java - 使用java生成一定范围内的随机数的问题

找到最有效的基数来存储大整数的算法

java - 如何从数组中删除一些元素?

javascript - 将变量值设置为 backbone.js 中的键

javascript - 如何制作消息,用户可以在不运行的情况下发送 php、javascript 或 html

c# - 在数字中插入 1 位 C#