Math.round()方法即為我們常說的“四舍五入”方法,但用起來不注意的話就會(huì)犯錯(cuò)。
首先看下下面的幾個(gè)結(jié)果: Math.round(1.0) Math.round(1.4) Math.round(1.5) Math.round(1.6)
結(jié)果分別為1,1,2,2。這沒什么好說的。
那么如果傳入的參數(shù)為負(fù)數(shù)呢? Math.round(-1.0) Math.round(-1.4) Math.round(-1.5) Math.round(-1.6)
結(jié)果分別為-1,-1,-1,-2。 注意Math.round(-1.5),也就是-1.5“四舍五入”的結(jié)果并不是-2,而是-1。這是為什么呢?
實(shí)際上,Math.round()方法準(zhǔn)確說是“四舍六入”,5要進(jìn)行判斷對(duì)待。 Math.round()的原理是對(duì)傳入的參數(shù)+0.5之后,再向下取整得到的數(shù)就是返回的結(jié)果,返回值為long型。這里的向下取整是說取比它小的第一個(gè)整數(shù)或者和它相等的整數(shù)。
因此Math.round(-1.5)的結(jié)果是-1.5 + 0.5 再向下取整,即-1.0取整,結(jié)果是-1. Math.round(-1.4)的結(jié)果是 -1.4 + 0.5 即-0.9 向下取整,結(jié)果是-1。 同理,Math.round(1.5)即為 1.5 + 0.5 再向下取整,結(jié)果是2。
而“向下取整”實(shí)際上就是Math.floor()方法,注意Math.floor()返回的值為double類型的。 Math.floor(1.0) == 1.0 Math.floor(1.4) == 1.0 Math.floor(1.5) == 1.0 Math.floor(1.6) == 1.0 Math.floor(-1.0) == -1.0 Math.floor(-1.4) == -2.0 Math.floor(-1.5) == -2.0 Math.floor(-1.6) == -2.0
類似地,還有一個(gè)Math.ceil()方法,表示“向上取整”,得到的結(jié)果是比參數(shù)大的第一個(gè)整數(shù)或者和參數(shù)相等的數(shù),返回值也是double類型的。 Math.ceil(1.0) == 1.0 Math.ceil(1.4) == 2.0 Math.ceil(1.5) == 2.0 Math.ceil(1.6) == 2.0 Math.ceil(-1.0) == -1.0 Math.ceil(-1.4) == -1.0 Math.ceil(-1.5) == -1.0 Math.ceil(-1.6) == -1.0
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注