围绕n * 10的算法

时间:2013-09-10 22:06:46

标签: javascript algorithm math

我正在尝试找到一个算法来结果:

45 => 100
458 => 1000
8456 => 10000

我想以这种方式“围绕”,我调查了Math.round(),但它认为不够。

2 个答案:

答案 0 :(得分:8)

对于单行代码,你可以做Rup所说的。基数为10的日志会给你最近的10次幂,然后用10来达到日志结果的上限值

var x = 45;

Math.pow(10, Math.ceil(Math.log(x) / Math.LN10));

答案 1 :(得分:2)

最容易想到的事情是:

var n = 455;
var rounded;

for(var i = 1000000000 i>= 1; i/=10)
{
    if(i < n)
    {
        break;
    }
    else
    {
        rounded = i;
    }
}