计算字段中的2个值,但工作不正常

时间:2019-04-08 15:00:55

标签: javascript jquery

我正在计算带有值的表单上的2个字段,但在某些情况下似乎不起作用。这是我的JavaScript。我要添加$oneTimeCostField$recurringTotalCostField,以将值添加到$totalRetailAmountField中。这是当我添加说1,555.00 + 566.00 =值是567.00(?)时得到的结果。知道我在做什么错吗?在某些情况下,当值较低时,它可以正常工作。谢谢,很困惑

var $recurringCostField = $('#am_attribute_campaign_addon_monthly_cost_value');
var $recurringTotalCostField = $('#am_attribute_campaign_addon_total_monthly_cost_value');
var $totalRetailAmountField = $('#am_oie_string_total_monthly_cost_value');
var $oneTimeCostField = $('#am_attribute_campaign_addon_one_time_cost_value');

function calcVal() {
    var num1 = $oneTimeCostField.val();
    var num2 = $recurringTotalCostField.val();
    var result = parseFloat(num1) + parseFloat(num2);
    if (!isNaN(result)) {
        $totalRetailAmountField.val(result.toFixed(2));
    }
}
    calcVal();
      $oneTimeCostField.on("keydown keyup", function() {
        calcVal();
     });
      $recurringTotalCostField.on("keydown keyup", function() {
        calcVal();
     });

2 个答案:

答案 0 :(得分:2)

这是因为 parseFloat()将字符串“ 1,555.00”转换为数字1。 要将其转换为适当的浮点数,只需要包含一个点即可。

console.log(parseFloat("1.555"));

答案 1 :(得分:2)

在解析之前,您需要删除逗号:

var result = parseFloat(num1.replace(/,/g, '')) + parseFloat(num2.replace(/,/g, ''));

在此链接上的

类似问题 Remove commas from the string using JavaScript