我目前需要将数字四舍五入到最接近的主数。 (不确定这里用的是正确的术语)

但是,请参阅我要实现的目标的示例

IE:

 13 // 20
 349 // 400
 5645 // 6000
 9892 // 10000
 13988 // 20000
 93456 // 100000
 231516 // 300000

etc. etc.

我已经实现了一种方法,但是它是如此的痛苦,只能处理高达一百万的数字,如果我希望它更高,我需要添加更多的if语句(是的,我是如何实现它的:P我不是很自豪,但是大脑卡住了)

肯定已经有东西了,但是Google帮不上我大忙,可能是因为我不知道我想做的四舍五入的正确术语

最佳答案

<script type="text/javascript">
    function intelliRound(num) {
        var len=(num+'').length;
        var fac=Math.pow(10,len-1);
        return Math.ceil(num/fac)*fac;
    }
    alert(intelliRound(13));
    alert(intelliRound(349));
    alert(intelliRound(5645));
    // ...
</script>

参见http://jsfiddle.net/fCLjp/

09-29 20:45