我想对这些数字进行舍入:
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) }
}
我使用Excel for it = round(Value / Granularity)*粒度但是我在JavaScript中尝试了它无法正常工作。
static calc(num){
const granularitiy = 0.00005;
let calc = Math.round((num / granularitiy)) * granularitiy;
return calc;
}
我的粒度值为0.00005;
答案 0 :(得分:0)
由于on只想舍入到.5或舍入数字,所以不能简单地使用Math.round(number)
。
最简单的方法就是:
Math.round(number*2)/2
这样,你总是会得到一个数字.5或圆形。
如果你想绕另一种方式(ceil或floor),你可以简单地用你想要的任何东西替换Math.round。