Javascript计数两个变量出错

Javascript计数两个变量出错,javascript,jquery,count,Javascript,Jquery,Count,我正忙于制作一种发票系统,用户可以很容易地制作发票。现在,我必须对每个产品计算三个不同的变量/项目,但我的javascript代码没有将它们计算在内,而是将其作为文本(使用+运算符) 例如: 选择功能表1=选项0(其中增值税=8.50欧元) 选择功能表2=选项1(其中增值税=12.76欧元) 现在输出必须是(8.50+12.76)=21.26 在我的情况下,输出为=8.5012.76 我的(部分)javascript代码: $("select#product").on("change", fun

我正忙于制作一种发票系统,用户可以很容易地制作发票。现在,我必须对每个产品计算三个不同的变量/项目,但我的javascript代码没有将它们计算在内,而是将其作为文本(使用+运算符)

例如:

选择功能表1=选项0(其中增值税=8.50欧元) 选择功能表2=选项1(其中增值税=12.76欧元)

现在输出必须是(8.50+12.76)=21.26

在我的情况下,输出为=8.5012.76

我的(部分)javascript代码:

$("select#product").on("change", function (e) {
    var $row = $(e.target).closest('.productitem');
    var selVal = $row.find('#product').val();

    var totalvat;
    var currentVat = $('#totalvat').val();
    var NLhoog = 1.21;

    var price0EXC = 40.49;
    var price0INC = (price0EXC * NLhoog).toFixed(2);
    var price0VAT = (price0INC - price0EXC).toFixed(2);
    var price1EXC = 60.74;
    var price1INC = (price1EXC * NLhoog).toFixed(2);
    var price1VAT = (price1INC - price1EXC).toFixed(2);

    if (selVal === "0") {
        $row.find("input#vat").val(price0VAT);
        $row.find("input#priceEXC").val(price0EXC);
        $row.find("input#priceINC").val(price0INC);

        totalvat = (currentVat + price0VAT);
        $('input#totalvat').val(totalvat);

    } else if (selVal === "1") {
        $row.find("input#vat").val(price1VAT);
        $row.find("input#priceEXC").val(price1EXC);
        $row.find("input#priceINC").val(price1INC);

        totalvat = currentVat+price1VAT;
        $('input#totalvat').val(totalvat);

    }
});
我把代码中不重要的部分漏掉了。
如果您知道我做错了什么,请告诉我:)

您使用的是
var currentVat=$('#totalvat').val()从我假设的输入中获取值?这是一个字符串,需要在某些时候解析为相关的数据类型。当
+
与字符串一起使用时,编译器将执行串联

尝试以下方法:

var currentVat = parseFloat($('#totalvat').val());
或者稍后使用以下方法进行操作:

parseFloat(currentVat);

当您使用数字作为货币时,我会考虑在后缀中添加后缀<代码>。ToFixed(2)< /> >,也许其他格式>

认为这有帮助吗?p>
var currentVat = parseFloat($('#totalvat').val());

在求和之前,使用
parseFloat
currentVat
priceVAT
值解析为浮点数。因为
currentVat
是一个字符串。你需要事先
parseFloat
。看起来你的HTML有重复的ID。是吗?字符串上的
+
将连接它们。您必须首先将字符串转换为数字,然后
+
将数字相加。+对数字进行求和,对字符串进行串联
8.50+12.76=21.26
但是
“8.50”+“12.76”=“8.5012.76”
请注意,对数字调用toFixed()也会返回字符串。