繁体   English   中英

JavaScript的数学计算问题

[英]Math calculation issue with Javascript

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

例如:1公斤运往美国的成本为32美分,而用户想知道10公斤的成本为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美元,想知道他/她可以随其运送多少公斤(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;
    }

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

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

您将price强制为整数,然后再除。 因此,如果price3.20 ,则实际上是在除以3 / 0.32 ,即9.375

不要将其强制为整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM