我有这个JavaScript功能(见下文)。它只返回整数,只有在输入整数时才有效。但是当我输入十进制值时,它不起作用。
我该怎么办才能处理十进制值?
function calc()
{
var license=parseInt(document.getElementById("license").value);
var service=parseInt(document.getElementById("service").value);
var amount=parseInt(license)+parseInt(service);
var mult=service*(parseInt(document.getElementById("preterms").value) / 100);
var mult1=service*(parseInt(document.getElementById("blueterms").value) / 100);
var mult2=service*(parseInt(document.getElementById("configterms").value) / 100);
document.getElementById("amount").value = amount;
document.getElementById("pre").value = mult;
document.getElementById("blue").value = mult1;
document.getElementById("config").value = mult2;
}
提前致谢。
答案 0 :(得分:1)
将parseInt
更改为parseFloat,例如
var license=parseInt(document.getElementById("license").value);
到
var license=parseFloat(document.getElementById("license").value);
答案 1 :(得分:0)
由于您使用的是十进制值,因此需要使用parseFloat代替parseInt
例如:
function calc() {
var license = parseFloat(document.getElementById("license").value);
var service = parseFloat(document.getElementById("service").value);
var amount = parseFloat(license) + parseFloat(service);
var mult = service * (parseFloat(document.getElementById("preterms").value) / 100);
var mult1 = service * (parseFloat(document.getElementById("blueterms").value) / 100);
var mult2 = service * (parseFloat(document.getElementById("configterms").value) / 100);
document.getElementById("amount").value = amount;
document.getElementById("pre").value = mult;
document.getElementById("blue").value = mult1;
document.getElementById("config").value = mult2;
}
答案 2 :(得分:0)
看起来人们建议使用parseFloat
。您可能遇到的下一个问题是格式化输出。您可以使用toFixed
输出具有固定小数位数的百分比:
(12.34567).toFixed(2)
// => "12.35"