使用Javascript进行数学计算问题

时间:2012-02-17 10:35:55

标签: javascript math

我在javascript中使用一些数学计算时遇到了一些麻烦。 此计算的目标是在用户单击文本字段时生成值。

例如: 1公斤费用32美分运往美国,用户想知道10KG将花费他3.20美元。为此,我有以下javascript代码:

    function calculate(num) {
        var weight  = document.getElementById('weight'+num);
        var price   = document.getElementById('price'+num);
        if(num == undefined || num == '' || num.length <= 0 || isNaN(weight.value) || isNaN(price.value)) return false;

        if(num == 1) multiplyBy = 0.32;
        if(num == 2) multiplyBy = 0.14;
        if(num == 3) multiplyBy = 0.24;
        if(num == 4) multiplyBy = 0.53;

        var sum = parseInt(document.getElementById('weight'+num).value) * multiplyBy;
        if(isNaN(sum)) return false;
        price.value = sum;
    }

上面的代码工作得非常好,但是当我改变这个过程时(某人有3.20美元并想知道他/她可以携带多少KG(10KG),脚本会返回:9.375KG

以下代码用于此计算:

function reverse(num) {
        var weight  = document.getElementById('weight'+num);
        var price   = document.getElementById('price'+num);
        if(num == undefined || num == '' || num.length <= 0 || isNaN(weight.value) || isNaN(price.value)) return false;

        if(num == 1) divideBy = 0.32;
        if(num == 2) divideBy = 0.14;
        if(num == 3) divideBy = 0.24;
        if(num == 4) divideBy = 0.53;

        var sum = parseInt(document.getElementById('price'+num).value) / divideBy;
        if(isNaN(sum)) return false;
        weight.value = sum;
    }

老实说,我不明白为什么会失败,如果有人可以帮我解决这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:4)

var sum = parseInt(document.getElementById('price'+num).value) / divideBy;

您在将price分成整数之前将其强制转换为整数。因此,如果price3.20,您实际上是3 / 0.329.375。{/ p>

请勿将其强制为整数。