我只在Javascript中使用整数(主要是添加数字并移动它们)。我不知道他们有多大可以不丢失任何一点。
例如,X
代表1 << X
会有多大2^X
?
答案 0 :(得分:26)
JavaScript中的所有数字实际上都是符合IEEE-754标准的浮点数双精度数。它们具有53位尾数,这意味着任何大小约为9千万亿或更小的整数值 - 更具体地说,9,007,199,254,740,991 - 将被准确表示。
注意:在2018年,主浏览器和NodeJS也在使用新的Javascript原始类型BigInt,解决整数值幅度问题。
答案 1 :(得分:5)
JavaScript中的所有数字都是64位(双精度)浮点数。
Here是对格式的描述以及可用和不能用它表示的值。
答案 2 :(得分:3)
所有答案都部分错误-也许是由于新的ES6 / ES7规范-,为什么要这么做:
首先,在JavaScript中,数字的表示形式为 2 ^ 53-1 ,这对于@Luke答案是正确的,
我们可以通过运行将显示较大数字的Number.MAX_SAFE_INTEGER
来证明,然后我们执行log2
来确认位数相同:
Number.MAX_SAFE_INTEGER
9007199254740991
Math.log2(9007199254740991)
53
欢迎使用Javascript!