1
我在javascript中對一些數學計算有點麻煩。 此計算的目標是在用戶單擊文本字段時生成一個值。使用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;
}
老實說,我不掌握它爲什麼失敗,那將是多大,如果有人能夠理解幫我解決這個問題
這與浮點錯誤沒有關係,因爲它將float解析爲int – 2012-02-17 10:41:11
也許一個關於爲什麼使用整數(因此1c == 1,而不是1c == 0.01)進行貨幣計算的經驗往往是要走的路。 – 2012-02-17 10:42:25
閱讀速度太快。我會刪除它。 – duffymo 2012-02-17 10:42:31