添加两个输入框值的 JavaScript 意外结果

标签 javascript

我试图在 Java 脚本中添加两个文本框字段值。下面是我的代码

<!DOCTYPE html>
<html>
<head>
<script>
function addFunction() {
    var x = document.getElementById("firstInput").value;
    var y = document.getElementById("secondInput").value;
    var sum=x+y;
    alert('Sum is:'+sum);
}
</script>
</head>
<body>

<input type="text" id="firstInput"><br/>
<input type="text" id="secondInput"><br/>

<input type="button" value="Add" onclick="addFunction()">

</body>
</html>

我期望结果是两个字段值的总和,但事实并非如此 我在第一个文本字段中输入 2,在第二个文本字段中输入 3,输出为

Sum is:23

然后仅用于测试,我在 addFunction() 中添加了以下代码

var a = 0.0343;
var b = 0.11;
var x = a + b;
alert(x);

输出为

0.144299999999999998

发生什么事了。有人可以解释一下为什么我会得到这两个特殊的输出吗?

最佳答案

input 元素的 value 是字符串。 “2”+“3”==“23”

要获得预期的输出,您可以这样做:

function addFunction() {
    var x = parseInt(document.getElementById("firstInput").value);
    var y = parseInt(document.getElementById("secondInput").value);
    var sum=x+y;
    alert('Sum is:'+sum);
}

关于第二个问题,您可以在这里阅读更多内容:How to deal with floating point number precision in JavaScript?

关于添加两个输入框值的 JavaScript 意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31815996/

相关文章:

javascript - 鼠标滚轮水平滚动

javascript - 验证成功后从 jQuery.validator 中删除样式

javascript - 在两点之间绘制假想路径并沿该路径打印图像?

javascript - 如何用文字推特图片

javascript - chrome 扩展程序弹出窗口未显示

javascript - 单击时将 div 滑入和滑出,但原始页面未在页面加载时显示?

javascript - 有没有更好的方法来减少多个 if 语句?

javascript - Jquery 乘法不起作用?但加法有效

javascript - 如何使用 javascript 从字母数字字符串值中拆分数值?

javascript - Handlebars /功能最终处于不可能的状态