javascript - 在javascript中减去长数字

标签 javascript long-integer subtraction

为什么在下面的脚本中 q == 0?

<script>
  var start = 1234567890123456789;
  var end =   1234567890123456799;
  var q = end - start;
  alert(q);
</script>

我认为结果应该是 10。这两个数相减的正确方法是什么?

最佳答案

因为 JavaScript 中的数字是 float 。它们的精度有限。

当 JavaScript 遇到一个非常长的数字时,它会将它四舍五入到它可以表示为 64 位 float 的最接近的数字。在您的脚本中,startend 被四舍五入为相同的值。

alert(1234567890123456789);   // says: 1234567890123456800
alert(1234567890123456799);   // says: 1234567890123456800

没有对大整数进行精确算术的内置方法,但您可以使用 BigInteger 库,例如 this one

关于javascript - 在javascript中减去长数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050111/

相关文章:

javascript - 使用 javascript 拦截传入的 URL

java - 如何确定极大的质因数?

python - 将列表中的每个字符串拆分为数字和非数字部分

loops - 如何仅使用循环和增量实现减法

javascript - 仅使用 CSS3 实现类似盲人的动画

Javascript - 原型(prototype)数组打印测试错误

c - C 中的数据类型

python 从前一个奇数列中减去每个偶数列

javascript - 在 execCommand 中使用 span 而不是 font

gcc,不同架构上 long int 的宽度