用JavaScript将数字四舍五入
我想把数字四舍五入如下:用JavaScript将数字四舍五入,javascript,typescript,Javascript,Typescript,我想把数字四舍五入如下: Value Expected 0,523% 1% 2,235% 2,5% -0,081% -0,5% -1,081% -1,5% 如何使用JavaScript实现这一点 解决方案: static round (num) { const abs = Math.abs(num); const sign = num < 0 ? -1 : 1; return sign * (abs % 1 > 0.5 ? Math.ceil(a
Value Expected
0,523% 1%
2,235% 2,5%
-0,081% -0,5%
-1,081% -1,5%
如何使用JavaScript实现这一点
解决方案:
static round (num) {
const abs = Math.abs(num);
const sign = num < 0 ? -1 : 1;
return sign * (abs % 1 > 0.5 ? Math.ceil(abs) : Math.floor(abs) + 0.5) }
}
我的粒度值为0.00005 由于您只想将数字四舍五入或四舍五入,因此不能简单地使用
Math.round(number)
要做到这一点,最简单的方法是:
Math.round(number*2)/2
这样,您将始终拥有0.5或整数。如果你想用另一种方式(ceil或floor)取整,你可以简单地用你想要的任何方式替换Math.round。在这里展示你的作品你想将正数取整到最接近的.5,将负数取整到最接近的.5…?你的意思是,取整到离零最近的0.5的倍数吗?这似乎是一种不好的取整方式。您将在
0.001
和-0.001
之间找到一个巨大的间隙。一个将一直旋转到0.5
,另一个向下旋转到-0.5
。这是一个巨大的差距。这个答案使用.5而不是3:这并不能产生所有想要的结果。我想让它更精确,但我们需要更多的信息从op。
Math.round(number*2)/2