【发布时间】:2020-05-11 16:22:28
【问题描述】:
我正在使用映射函数来返回四舍五入的小数点。有一些数字会返回整数,例如index 2. 4 and index 3. 1 我试图让这些个位数的数字返回小数点。例如,拥有index 2: 4 -> 4.0; index 3. 1 -> 1.0
我已经尝试过使用toFixed 函数,但它会影响所有其他有小数点的数字。如何在不影响数组中其他索引的情况下返回 4.0 和 1.0?
我希望这些数字作为整数返回,当仅使用 toFixed 时,我将这些数字作为字符串返回
我的预期结果是:4.4, 4.6, 4.0, 1.0, 1.7
let sumRounded = sumPercentage.map(function (percent) {
return Math.round(percent * 10) / 10;
});
原始控制台日志:
0: 4.4
1: 4.6
2: 4
3: 1
4: 1.7
let sumRounded = sumPercentage.map(function (percent) {
return Math.round((percent * 10) / 10).toFixed(1);
});
使用 toFixed 后的控制台日志
0: "4.0"
1: "5.0"
2: "4.0"
3: "1.0"
4: "2.0"
【问题讨论】:
-
删除
round? -
是否可以检查数字是否为正确的整数,然后应用您的函数? JS 中为此提供了
Number.isInteger()? -
@Teemu 有办法处理圆形吗?我四舍五入,因为我需要这些数字是整数才能显示在我正在使用的图表上。使用 toFixed 时,它们以字符串形式返回
-
@VedantBang 我不确定我是否正确理解了您的问题,但我希望这些数字以整数形式返回
-
您必须为此使用字符串。数字没有小数点或精度,它们只是二进制值,当它们显示时,它们会得到最紧凑的格式。您必须使用
toFixed()来格式化它们,这需要使用字符串。
标签: javascript arrays numbers