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