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;
}
我有一个功能,用户可以输入“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; }