Javascript添加整数和小数

时间:2015-03-24 15:12:19

标签: javascript arrays decimal

我有一个功能,用户可以在其中输入数字,如" 5"," 10"," 0.47"," 0.5"等等 每次用户输入数据时,数据都会保存在一个数组中。

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

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

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

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

例如

目前数组中的值低于此值,这是通过 console.log 收集的:

enter image description here

运行上述功能后屏幕上的输出为:

总计= 5

但实际上它应显示总计= 6.88

如何确保无论用户输入的数字是多少,并且正面显示在前面。

2 个答案:

答案 0 :(得分:5)

在函数中使用parseFloat(),你应该做得很好:

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

答案 1 :(得分:1)

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;
    }