【发布时间】:2020-08-08 05:20:42
【问题描述】:
我有一个计算函数用于确定数组中两个值之间的百分比差异。
经过我的计算,返回的值是十进制形式,例如
0: 6.439999737456044
1: 7.7490311455816805
2: 2.3720164855984383
3: 4.12554213772474
我正在尝试将数组中的每个数字四舍五入到最接近的整数。所以索引 0 = 6,索引 1 = 8,索引 2 = 2,索引 3 = 4。
我在计算结束时使用 math.round 方法,它对返回的数字没有影响,因为它们以上面显示的小数形式返回。
这是我的代码:
const Numerators = [];
const Denominators = [];
Array.forEach(({ DataValue }, i) => {
const arrToPushTo = i % 2 === 0 ? Denominators : Numerators;
arrToPushTo.push(Number(DataValue.replace(/,/g, '')));
});
const Percentage = Numerators.map((Numerator, i) => {
const Denominator = Denominators[i];
return 100 * Math.abs((Denominator - Numerator) / ((Denominator + Numerator) / 2));
math.Round(Percentage)
});
console.log(Percentage)
我也尝试创建另一个变量 const Round = math.Round(Percentage),但是当控制台记录这个变量时,我返回 NaN
【问题讨论】:
-
这应该可以正常工作。您能否在此处使用jsfiddle 或snippet 为此创建一个small demo 以显示正在发生的问题。
-
另外,你有一个错字。它实际上是
Math.round() -
您必须
return舍入百分比。Math.round()(是Math,不是math)不会修改数字。
标签: javascript rounding