作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个函数是通过动态表计算借方总数,问题是,它计算了 2.6 + 2.1 = 4.00
,我希望答案是 4.70
, 但它不计算小数点后两位。
function debitvalues() {
var debittotal = 0;
var obj = document.getElementsByTagName("input");
for (var i = 0; i < obj.length; i++) {
if (obj[i].name == "debit[]") {
if (obj[i].value > 0) {
debittotal += parseInt(obj[i].value * 1);
} else {
obj[i].value = 0;
debittotal += parseInt(obj[i].value * 1);
}
}
}
document.getElementById("debittotal").value = (debittotal * 1).toFixed(2);
debittotal = 0;
}
最佳答案
当您需要解析为float
时,您解析为int
:
parseInt(obj[i].value*1)
parseInt
=> parseFloat
parseInt
给你一个自然数 - N 而 parseFloat
给你一个实数 - R。
顺便说一句,当你将一个数字 - x 乘以 1 时,你会得到完全相同的 x 数字,所以我认为你的计算器可以跳过它......
parseInt(obj[i].value*1) => parseFloat(obj[i].value)
关于javascript - HOW修复计算两位小数错误的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177343/
我是一名优秀的程序员,十分优秀!