我在JavaScript中执行以下算术运算:
var txtFirstNumberValue = document.getElementById('txt1').value;
var txtSecondNumberValue = document.getElementById('txt2').value;
var result = (parseInt(txtSecondNumberValue) -
parseInt(txtFirstNumberValue)) +1;
当我提供以下输入时:
txt1 = 8946270000000000094
txt2 = 8946270000000000082
结果我得到1分。为什么?
答案 0 :(得分:2)
parseInt可以解析的最大整数是+/- 9007199254740991
。在您的情况下,超出范围,因此它将结果设为1,因为它是overflowing the range。
另请注意,ECMAScript指定:
你需要使用BigInteger library来处理这样的大数字。