gpt4 book ai didi

JavaScript parseInt 不正确的转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:47:10 25 4
gpt4 key购买 nike

考虑:

<html>
<body>
<input Id="1"></input>
<input Id="2"></input>
<button Id="3"onclick="add()">Add</button>
<script>
function add()
{
var num1 = document.getElementById("1").value;
var val1 = parseInt(num1);
var num2 = document.getElementById("2").value
var val2 = parseInt(num2);
var val3 = val1 + val2;
var x = +num1 + +num2;

alert(val3);
</script>
</body>
</html>

我想在 JavaScript 中添加两个数字。但是,当我向文本框提供“11111111111111111”时,parseInt 会将其转换为 11111111111111112 而不是 11111111111111111。为什么要这样做?

我已经尝试了所有技术。我首先将 var 转换为字符串并将其解析为 int 然后添加,使用不同的基数与 parseInt,但我仍然一无所获。

我还注意到,当我向它提供 16 个 1 时,它工作正常,但如果提供 17 个 1,它就会这样。

最佳答案

JavaScript numbersIEEE 754具有 15-17 位有效数字精度的 double 。

在您的情况下,11111111111111111 号码有 17 位数字,这会导致观察到的问题。

关于JavaScript parseInt 不正确的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24257881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com