Java中Math.round()__Java
來源:互聯網
上載者:User
以參數為double 類型為例
首先要注意的是它的傳回值類型是long,如果 Math.round(11.5f),那它的傳回值類型就是int,這一點可以參考API 其次 Returns the closest long to the argument, with ties rounding to positive infinity 它返回的是一個最接近參數的long 值(例如: Math.round(11.6) = 12; Math.round(-11.6) = -12; Math.round(-0.1) = 0; Math.round(0.1) = 0 ),那如果出現向上向下距離一樣的數值, 比如題目中的11.5,該如何處理呢 ,別著急,看它的後半句話, with ties rounding to positive infinity( 同時向正無窮方向取捨或者翻譯成取較大的值,英語水平較差,只能翻譯成這樣了; 例子: Math.round(11.5) ,首先與 11.5最接近的有兩個整數 11 和 12,取較大的那結果就是12; Math.round(-11.5), 首先與 -11.5最接近的有兩個整數 -11 和 -12,取較大的那結果就是-11; Math.round(0.5), 首先與 0.5最接近的有兩個整數 0 和 1,取較大的那結果就是1; Math.round(-0.5), 首先與 -0.5最接近的有兩個整數 -1 和 0,取較大的那結果就是0; ) 然後它有三個特例: 1.如果參數為 NaN(無窮與非數值) ,那麼結果為 0。 2.如果參數為負無窮大或任何小於等於 Long.MIN_VALUE 的值,那麼結果等於Long.MIN_VALUE 的值。 3.如果參數為正無窮大或任何大於等於 Long.MAX_VALUE 的值,那麼結果等於Long.MAX_VALUE 的值。 最後 最好還是看一下API或者源碼,不要信了我的邪