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