我的简单数学方程式有什么问题

时间:2019-07-04 19:19:19

标签: javascript html math

我正在尝试创建一个简单的计算器,该计算器将退还营业税额和税后额。如果我输入$ 80,而营业税为7.5%,我应该取回$ 86,但我却要退回$ 806。我不确定为什么。

    //calculation
    var total = (itemCost + (itemCost * salesTax/100));


    total = Math.round(total) 

3 个答案:

答案 0 :(得分:3)

您需要var total = (parseInt(itemCost) + (parseInt(itemCost) * salesTax/100));

答案 1 :(得分:2)

问题是,当您检索值时,它是一个字符串。通过执行以下操作将其解析为数字值:

var salesTax = Number(document.getElementById("salesTax").value);

答案 2 :(得分:1)

获取文本字段的值时,您具有字符串。 JavaScript进行了很多类型推断,因此它几乎可以工作。您的表情会翻译为:

(String)“ 80” +((String)“ 80” *(int)0.075)

(String)“ 80” +(int)6

现在调用String运算符+(String,Any),它被定义为字符串连接。因此,您最终得到“ 80” +“ 6” =>“ 806”。

例如,如果您会写: “ 80” *“ 1” +“ 80” *“ 7.5” /“ 100”,您的确会得到86的预期结果。

但是要确保一切正常,您确实应该将值从字符串值解析为数字值(使用parseInt或parseFloat)。