我试图找出解决四舍五入的最佳方法。
基本上我有这个数字:var weekMilliseconds = 604800000(一周中的毫秒数)
我有另一个函数可以输出一个随机数。
我想做的是基于随机数,我想输出下一个周毫秒的倍数。
例如:
如果随机 # 为 1:向上舍入 604800000
如果随机数为 604800001,则向上取整为 1209600000 (604800000 * 2)
等等.....
实现这一目标的最佳方法是什么。
我试图找出解决四舍五入的最佳方法。
基本上我有这个数字:var weekMilliseconds = 604800000(一周中的毫秒数)
我有另一个函数可以输出一个随机数。
我想做的是基于随机数,我想输出下一个周毫秒的倍数。
例如:
如果随机 # 为 1:向上舍入 604800000
如果随机数为 604800001,则向上取整为 1209600000 (604800000 * 2)
等等.....
实现这一目标的最佳方法是什么。
使用Math.ceil()
(它给你下一个整数):
Math.ceil(randomNumber / weekMilliseconds) * weekMilliseconds
你真的可以通过几种方式做到这一点。我建议使用javascript的Math.ceil()
功能。这个想法是,如果你想四舍五入到最接近的数字y
,则将输入x
除以y
。然后将其四舍五入到最接近的整数,并将其乘以要四舍五入的数字。因此,如果您有 11 并且想将其四舍五入为 12,11/12
则除以 ,将其~.917
四舍五入1
,然后乘以1*12
= 12。所以:roundTo * ceil(random/roundTo)
weekMilliseconds * Math.ceil(number / weekMilliseconds);
采取以下措施:
49 * ceil(228/49) = 245
8 * ceil(32/8) = 32
100 * ceil(64/100) = 100