这是我的 JavaScript:
function straava() {
var input = document.getElementById('input').value
var r1 = document.getElementById('r1').value
var r2 = document.getElementById('r2').value
document.getElementById("output").innerHTML = r2 / (r1 + r2) * input;
}
给定值:
input = 5
r1 = 1000
r2 = 1000
预期输出为 2.5
,但此函数生成 0.0004999500049995
。这是为什么?
最佳答案
你的变量是字符串。所以发生的事情是这样的:
"1000" / ("1000" + "1000") * "5";
"1000" / "10001000" * "5";
// 0.0004999500049995
+
(加法)运算符连接字符串而不是相加,因此结果不正确。
将您的“数字”转换为数字;使用 parseInt
/parseFloat
函数、(一元)+
运算符或 Number
函数:
var input = parseInt(document.getElementById('input').value, 10);
var r1 = parseInt(document.getElementById('r1').value, 10);
var r2 = parseInt(document.getElementById('r2').value, 10);
关于Javascript - 奇怪的数学输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29889562/