Javascript 将整数和小数相加

Javascript adding integers and decimals

我有一个功能,用户可以输入“5”、“10”、“0.47”、“0.5”等数字。 并且每次用户输入数据时,数据都保存在一个数组中。

我正在使用以下代码添加数组中的所有数字

    $scope.uTotal = uMiles.reduce(addPrice, 0)

        function addPrice(a, b) {
            return a + b;
        }

上面的代码成功地添加了所有数字,但是如果用户输入小数值,它不会添加小数值。

例如:

当前数组中的值如下,这是通过 console.log:

收集的

运行以上函数后屏幕上的输出为:

总计 = 5

但实际上它应该显示 total = 6.88

我怎样才能确保无论用户输入什么数字,它加起来都准确无误地显示在前面。

在函数内部使用parseFloat(),应该没问题:

function addPrice(a, b) 
{
    return a + parseFloat(b);
}

在您的 addPrice 函数中,您使用运算符 + 对值求和。

但是有一个问题:uMiles数组中的值是字符串。然后,addition operator + 连接字符串而不是对数值求和。

要修复它,您必须将字符串转换为数字。

  • reduce 之前,使用 .map(Number):

    uMiles.map(Number).reduce(addPrice, 0);
    function addPrice(a, b) {
        return a + b;
    }
    
  • 内部addPrice,使用unary + operator:

    uMiles.reduce(addPrice, 0);
    function addPrice(a, b) {
        return a + +b;
    }