JavaScript Math.ceil 方法
Math.ceil 方法用于對數(shù)值向上取整,即得到大于或等于該數(shù)值的最小整數(shù)。語法如下:
Math.ceil(x)
參數(shù)說明:
參數(shù) | 說明 |
---|---|
x | 必需。必須是一個(gè)數(shù)值。 |
提示:該方法與 Math.floor 方法正好相反。
Math.ceil 方法實(shí)例
<script language="JavaScript">document.write( Math.ceil(0.35) + "<br />" );document.write( Math.ceil(10) + "<br />" );document.write( Math.ceil(-10) + "<br />" );document.write( Math.ceil(-10.1) );</script>
運(yùn)行該例子,輸出:
1
10
-10
-10
Math.ceil 方法的錯(cuò)誤?
試著運(yùn)行下面的例子:
<script language="JavaScript"> document.write( Math.ceil(2.1/0.7) ); </script> 該例子運(yùn)行的結(jié)果并不是如我們期望的得到 3(2.1/0.7=3),而是 4,這顯然與我們的常識相悖,難道是 Math.ceil 方法的錯(cuò)誤?
真實(shí)的情況是,在進(jìn)行 2.1/0.7 計(jì)算時(shí),是按照浮點(diǎn)數(shù)來處理的。而計(jì)算機(jī)由于二進(jìn)制的關(guān)系,不可能對浮點(diǎn)數(shù)做到完全精確(即通常會(huì)損失一點(diǎn)進(jìn)度),所以導(dǎo)致 2.1/0.7 的計(jì)算結(jié)果并不是正好等于 3 ,而是超過 3 一點(diǎn)點(diǎn)(約:3.00000000000000044409)。所以該表達(dá)式應(yīng)用了 Math.ceil() 之后,得到的結(jié)果是 4 。
關(guān)于 ceil 函數(shù)不準(zhǔn)確的問題,在《PHP 浮點(diǎn)數(shù)計(jì)算比較及取整不準(zhǔn)確的解決方法》一文中也曾提及,在 PHP 中可以方便的用 round() 函數(shù)進(jìn)行處理。但 JavaScript 中的 Math.round() 過于粗暴,因此必須單獨(dú)寫一個(gè)函數(shù)來處理這類情況,即將 1 位小數(shù)點(diǎn)后的多余的數(shù)值都取掉,在使用 Math.ceil() 方法。
新聞熱點(diǎn)
疑難解答