我在下面有这个JavaScript代码,用于获取三个文本字段的总和值。 显示结果时,我需要显示两位小数。请帮我。 我已经尝试了很多方法来获取小数位但却找不到方法。
<script type="text/javascript">
function num(id) {
var e = document.getElementById(id);
if (e != null) {
var v = e.value;
if (/^\d+$/.test(v)) {
return parseInt(v, 10);
}
}
return 0;
}
function sum() {
var v1 = num("contNo6_1");
var v2 = num("contNo6_2");
var v3 = num("contNo6_3");
var r = document.getElementById("result");
r.toFixed(2);
if (r != null) {
r.value = v1 + v2 + v3;
}
}
function addHandler(element, eventName, handler) {
if (element.addEventListener) {
element.addEventListener(eventName, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + eventName, handler);
}
}
addHandler(window, "load",
function() {
addHandler(document.getElementById("contNo6_1"), "keyup", sum);
addHandler(document.getElementById("contNo6_2"), "keyup", sum);
addHandler(document.getElementById("contNo6_3"), "keyup", sum);
});
</script>
答案 0 :(得分:0)
您可以在js中使用toFixed方法。
var value = 10.123349;
var valueWithTwoDecimal = value.toFixed(2);
/*******
Output : 10.12
*******/
答案 1 :(得分:0)
您的num()
函数返回整数或零,因此您永远不会显示小数位。更改num()
以处理这样的浮点数:
function num(id) {
var e = document.getElementById(id);
if (e != null) {
var v = e.value;
if (/^[0-9]{1,}\.?[0-9]*$/.test(v)) { // New regex to accept
// number with decimal point
return parseFloat(v); // parse for Float instead of Int
}
}
return 0;
}