Javascript使用舍入到最接近的10

mar*_*ton 56 javascript

我想使用JavaScript循环整数.例如:

10 = 10
11 = 20
19 = 20
24 = 30
25 = 30
29 = 30
Run Code Online (Sandbox Code Playgroud)

ale*_*exn 118

这应该这样做:

Math.ceil(N / 10) * 10;
Run Code Online (Sandbox Code Playgroud)

其中N是您的一个数字.但是,这对你的第一个案例不起作用(10轮到20轮,但为什么会这样?).

  • 在那种情况下,他可以做`Math.ceil((N + 1)/ 10)*10;` (7认同)
  • Math.ceil 返回 [“大于或等于给定数字的最小整数。”](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil) 所以它适用于所有情况(`Math.ceil(10 / 10) * 10 = 10`) (2认同)

ken*_*bec 24

要将数字舍入到10的下一个最大倍数,请在获得除法的Math.ceil之前将数字加1,然后将结果乘以10.

Math.ceil(第(n + 1)/ 10)*10;

1->10
2->10
3->10
4->10
5->10
6->10
7->10
8->10
9->10
10->20
11->20
12->20
13->20
14->20
15->20
16->20
17->20
18->20
19->20
20->30
21->30
22->30
23->30
24->30
25->30
26->30
27->30
28->30
29->30
30->40
35-> 40
40-> 50
45-> 50
50-> 60
55-> 60
60-> 70
65-> 70
70-> 80
75-> 80
80-> 90
85-> 90
90-> 100
95-> 100
100-> 110
Run Code Online (Sandbox Code Playgroud)

  • 你怎么能用负值来做这个工作?最近的(330,-5)应该是225,这个返回330:/ (2认同)

Nie*_*sol 9

Math.round()舍入到最接近的整数.要舍入到任何其他数字,除以10的幂.

一种这样的方法是这样的:

function round(num,pre) {
    if( !pre) pre = 0;
    var pow = Math.pow(10,pre);
    return Math.round(num*pow)/pow;
}
Run Code Online (Sandbox Code Playgroud)

你可以为floor和做类似的功能ceiling.但是,无论你做什么,10都永远不会圆20.


sil*_*lly 7

或这个

var i = 20;
var yourNumber = (parseInt(i/10, 10)+1)*10;
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记parseInt()上的第二个参数(基数).应该是`var yourNumber =(parseInt(i/10,10)+1)*10;` (3认同)