javascript使数字成为150的倍数

发布于 2024-12-08 15:09:33 字数 421 浏览 0 评论 0原文

我试图让数字成为 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;

我该如何做到这一点?

I'm trying to get numbers to be multiples of 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
...

Here is my code so far, using ceil():

var num = '12';
document.write(Math.ceil((num/150)*150) + "<br />")
// Output 12, not 150;

How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦回旧景 2024-12-15 15:09:33

这是简单的代数,先生:

(num / 150) * 150 = num

替换'12'(是的,一个字符串):

(num / 150) * 150 = 12

如果您希望所有数字映射到150的倍数,然后将它们除以 150,然后将结果取整得到一个整数:

150 * math.floor(num / 150)

或者ceil

150 * math.ceil(num / 150)

This is simple algebra, sir:

(num / 150) * 150 = num

Substituting '12' (yes, a string):

(num / 150) * 150 = 12

If you want all numbers to map to multiples of 150, then just divide them by 150 and then floor the result to get an integer:

150 * math.floor(num / 150)

Or ceil it:

150 * math.ceil(num / 150)
×纯※雪 2024-12-15 15:09:33

你几乎已经拥有了。在舍入操作后简单地相乘:

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));

http://jsfiddle.net/WEdSu/

You almost had it. Simply multiply after the rounding operation:

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));

http://jsfiddle.net/WEdSu/

萧瑟寒风 2024-12-15 15:09:33

一种简单的方法是

var num = 12;
var result = 150 * Math.ceil((num * 1.0)/150);

乘以 1.0 确保输入转换为浮点值 - 否则您可能会得到整数除法并得到 12 / 150 = 0。

A simple way would be

var num = 12;
var result = 150 * Math.ceil((num * 1.0)/150);

The multiplication by 1.0 ensures that input is converted to a floating point value - otherwise you may end up with integer division and get 12 / 150 = 0.

离鸿 2024-12-15 15:09:33
var num = '12';
document.write(Math.ceil(num/150)*150) + "<br />")

你的括号差了一点点。

var num = '12';
document.write(Math.ceil(num/150)*150) + "<br />")

Your parentheses were off by just a little.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文