关于javascript:从字段计算2个值,但它无法正常工作

Calculating 2 values from fields but it's not working properly

我正在用值计算窗体上的两个字段,但在某些情况下似乎不起作用。这是我的javascript。我将添加$oneTimeCostField$recurringTotalCostField,以获得$totalRetailAmountField的值。这是我加上1555.00+566.00=值为567.00(?)时得到的结果。知道我做错了什么吗?在某些情况下,当值较低时,它可以正常工作。谢谢,我受不了了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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();
     });


分析前需要删除逗号:

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

关于这个链接的类似问题使用javascript从字符串中删除逗号


这是因为parsefloat()将字符串"1555.00"转换为数字1。要将其转换为适当的浮点数,只需包含一个点。

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