我试图将数字设为150的倍数。
(all the num > 0)
if num = 0.333333 => output 150
if num = 149.9 => output 150
if num = 150 => output 150
if num = 150.1 => output 300
if num = 302 => output 450
...
到目前为止,这是我的代码,使用ceil()
:
var num = '12';
document.write(Math.ceil((num/150)*150) + "<br />")
// Output 12, not 150;
我该怎么做?
答案 0 :(得分:0)
你几乎拥有它。在舍入操作后简单地相乘:
function ceil150(x) {
return Math.ceil(x / 150) * 150;
}
alert(ceil150(0.333333));
alert(ceil150(149.9));
alert(ceil150(150));
alert(ceil150(150.1));
alert(ceil150(302));
答案 1 :(得分:0)
这是一个简单的代数,先生:
(num / 150) * 150 = num
代替'12'
(是的,一个字符串):
(num / 150) * 150 = 12
如果您希望所有数字映射到150
的倍数,则只需将它们除以150,然后然后 floor
得到的结果整数:
150 * math.floor(num / 150)
或ceil
:
150 * math.ceil(num / 150)
答案 2 :(得分:0)
一种简单的方法是
var num = 12;
var result = 150 * Math.ceil((num * 1.0)/150);
乘以1.0可确保输入转换为浮点值 - 否则您可能最终得到整数除法,得到12/150 = 0.
答案 3 :(得分:0)
var num = '12';
document.write(Math.ceil(num/150)*150) + "<br />")
你的括号稍微偏了一点。