Eri*_*ric 9 javascript subtraction long-integer
为什么在以下脚本中q == 0?
<script>
var start = 1234567890123456789;
var end = 1234567890123456799;
var q = end - start;
alert(q);
</script>
Run Code Online (Sandbox Code Playgroud)
我认为结果应该是10.减去这两个数字的正确方法是什么?
Jas*_*rff 20
因为JavaScript中的数字是浮点数.它们的精度有限.
当JavaScript看到一个非常长的数字时,它会将其四舍五入到它可以表示为64位浮点数的最近数字.在您的脚本中,start并end舍入到相同的值.
alert(1234567890123456789); // says: 1234567890123456800
alert(1234567890123456799); // says: 1234567890123456800
Run Code Online (Sandbox Code Playgroud)
没有内置的方法可以对大整数进行精确算术,但是你可以使用像这样的BigInteger库.
| 归档时间: |
|
| 查看次数: |
4778 次 |
| 最近记录: |