我试图在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


这是怎么回事。有人可以解释一下为什么我得到这两个奇怪的输出吗?

最佳答案

value元素的input是字符串。 "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 - 添加两个输入框值的Javascript意外结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31815996/

10-12 00:09
查看更多