0

我有这个计算表格对我的客户非常有效,有人将其放入百分比框 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>

我将不胜感激这方面的任何帮助。

谢谢

4

2 回答 2

1

您是否尝试过使用:

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

代替:

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

于 2012-05-08T11:03:08.587 回答
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

等等

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

于 2012-05-08T11:03:32.547 回答