计算表格

时间:2012-05-08 10:58:25

标签: javascript html forms

我有这个计算表格非常适合我的客户,有些人去了百分比框0.93并显示错误的金额。

在网站上:10 x 10 x 15 x 0.93 = 13.95

必须:10 x 10 x 15 x 0.93 = 1.395

我不知道在javascript中要更改什么才能在正确的位置完全停止

这是剧本。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title></title>
<script type="text/javascript">
function calculate() {
    var fields = [], i = 1, el, val, whole, total;
    for (i; i < 5; ++i) {
        el = document.getElementById('el' + i); val = el.value;
        if((whole = i < 3) && /\./.test(val) || isNaN(Number(val))) {
            alert("Please enter only " + (whole? 'whole ' : '') +    "numbers\nfor " + (el.value = el.defaultValue));
            el.focus();
            el.select();
            return;
        }
        fields.push(val);
    }
    total = (fields[0] * fields[1] * fields[2])*fields[3]/100;
    document.getElementById('calculate').innerHTML = "Total: " + total;
}
</script></head>

<body>
<form action="#" onSubmit="calculate(); return false;">
    <label>Days: <input type="text" id="el1" value="10"></label>
    <label>Taxis: <input type="text" id="el2"  value="10"></label>
    <label>Perdiem: <input type="text" id="el3" value="15"></label>
    <label>Discount: <input type="text" id="el4" value="93"></label>
    <div id="calculate">Total:</div>
    <br />
    <br />
    <input type="submit" value="Calculate">
</form>
</body>

</html>

我将不胜感激任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用:

total = (fields[0] * fields[1] * fields[2])*fields[3]/1000

而不是:

total = (fields[0] * fields[1] * fields[2])*fields[3]/100

答案 1 :(得分:1)

试试这个:

function getFormattedNumber(number, decimals) {
    return number.toFixed(decimals);
}

返回一个数字字符串,固定为您指定的小数位。

这就是它的作用:

For 2dp: getFormattedNumber(number, 2):
number:              return:
13.435345345         13.44
10.3435345           10.34

For 3dp: getFormattedNumber(number, 3):
number:
9.556622             9.557

因此,您可以使用正确的数字,并使用它来修复小数位。