2012年10月24日 星期三

[轉貼]JavaScript的四捨五入、無條件捨去、無條件進位

原文出處:Math.round() ,Math.floor(),Math.ceil() - Joejoe1991的备忘录

Math.round() ,Math.floor(),Math.ceil()

Math.round() 四捨五入
Math.floor() 取小於這個數的最大整數
Math.ceil() 取大於這個數的最小整數

例一:
alert(Math.round(12.3));   //12
alert(Math.round(12.5));   //13
alert(Math.round(12.52145)); //13


它將一個小數四捨五入為一個整數,與Java中的Math.round() 一樣,不保留一位小數!

保留兩位小數:
alert(Math.round(12.52645 * 100) / 100); //12.53

先將12.52645 乘 10 得到1252.645
將這個結果四捨五入為整數得到1253
再將1253除以100 ,得到12.53

如果要保留三位小數,乘1000再除1000就行!

例二:
一箱裝6瓶酒,現有N瓶,求裝幾箱。
function getNum(n) {
    var value = n;
    n = n / 6; //這裡拿到的結果有可能是小數,因為Js是弱類型語言。在Java中,整數除整數,結果也是整數。
    if (value % 6 != 0) { 如果不是6的倍數,也就是n箱裝不下。
        n += 1; //再裝一箱
    }

    n = Math.floor(n); //求小於這個數的最大整數,因為n / 6 可能是小數,所以這裡要化整。
    return n;
}

alert(getNum(12)); 2
alert(getNum(1)); 1
alert(getNum(0)); 0
alert(getNum(15)); 3

沒有留言:

張貼留言