函数获取JavaScript中的百分比并返回小数值

时间:2013-05-15 04:02:29

标签: javascript

我有这个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;

}

提前致谢。

3 个答案:

答案 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"