Javascript - 在百分比函数后使用 Math.round
Javascript - Using Math.round after percentage function
我有一个计算函数用于确定数组中两个值之间的百分比差异。
计算后,returned 的值采用小数形式,例如
0: 6.439999737456044
1: 7.7490311455816805
2: 2.3720164855984383
3: 4.12554213772474
我试图将数组中的每个数字四舍五入为最接近的整数。所以索引 0 = 6,索引 1 = 8,索引 2 = 2,索引 3 = 4.
我在计算结束时使用 math.round 方法,它对数字 return 没有影响,因为它们 return 如上所示的小数。
这是我的代码:
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)
但是当控制台记录这个变量时我 return 返回 NaN
如果你处理的是非负数,只需Math.floor(val)
或~~val
math.Round
不会改变原始值。您需要将结果分配给一个变量或 return 它来自一个函数。您也想将其移出循环。循环中 return
之后的任何内容都不会执行。
类似于:
const Percentage = Numerators.map((Numerator, i) => {
const Denominator = Denominators[i];
return 100 * Math.abs((Denominator - Numerator) / ((Denominator + Numerator) / 2));
});
const percentages = Percentage.map((percent) => math.Round(percent));
console.log(percentages);
编辑: 我刚刚看到你已经有了一个 return 值。
在通用 JavaScript 代码风格上添加一些花絮:
- TitleCased var 名称通常保留给构造函数,即创建 objects 和 类 的函数。如果您使用的是 TypeScript,您也会看到它用于类型和接口。大图是实体使用标题大小写。
- 除上述例外情况外,变量和函数的默认值应为驼峰式。
Array
是保留字,不能作为变量名使用。如果要使用Array.prototype.forEach
,语法是[1,2,3,4].forEach((num) => doSomething(num))
我有一个计算函数用于确定数组中两个值之间的百分比差异。
计算后,returned 的值采用小数形式,例如
0: 6.439999737456044
1: 7.7490311455816805
2: 2.3720164855984383
3: 4.12554213772474
我试图将数组中的每个数字四舍五入为最接近的整数。所以索引 0 = 6,索引 1 = 8,索引 2 = 2,索引 3 = 4.
我在计算结束时使用 math.round 方法,它对数字 return 没有影响,因为它们 return 如上所示的小数。
这是我的代码:
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)
但是当控制台记录这个变量时我 return 返回 NaN
如果你处理的是非负数,只需Math.floor(val)
或~~val
math.Round
不会改变原始值。您需要将结果分配给一个变量或 return 它来自一个函数。您也想将其移出循环。循环中 return
之后的任何内容都不会执行。
类似于:
const Percentage = Numerators.map((Numerator, i) => {
const Denominator = Denominators[i];
return 100 * Math.abs((Denominator - Numerator) / ((Denominator + Numerator) / 2));
});
const percentages = Percentage.map((percent) => math.Round(percent));
console.log(percentages);
编辑: 我刚刚看到你已经有了一个 return 值。
在通用 JavaScript 代码风格上添加一些花絮:
- TitleCased var 名称通常保留给构造函数,即创建 objects 和 类 的函数。如果您使用的是 TypeScript,您也会看到它用于类型和接口。大图是实体使用标题大小写。
- 除上述例外情况外,变量和函数的默认值应为驼峰式。
Array
是保留字,不能作为变量名使用。如果要使用Array.prototype.forEach
,语法是[1,2,3,4].forEach((num) => doSomething(num))