1. 程式人生 > >Java中Math.round()

Java中Math.round()

以引數為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或者原始碼,不要信了我的邪