[英]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
强制为整数,然后再除。 因此,如果price
为3.20
,则实际上是在除以3 / 0.32
,即9.375
。
不要将其强制为整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.