我在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;
}
老实说,我不明白为什么会失败,如果有人可以帮我解决这个问题,我将不胜感激。
答案 0 :(得分:4)
var sum = parseInt(document.getElementById('price'+num).value) / divideBy;
您在将price
分成整数之前将其强制转换为整数。因此,如果price
为3.20
,您实际上是3 / 0.32
,9.375
。{/ p>
请勿将其强制为整数。