public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Math.round(-11.5):" + Math.round(-11.5));
System.out.println("Math.round(-11.50001):" + Math.round(-11.50001));
System.out.println("Math.round(11.5):" + Math.round(11.5));
System.out.println("Math.round(-11.4):" + Math.round(-11.4));
System.out.println("Math.round(11.4):" + Math.round(11.4));
System.out.println("Math.round(-11.6):" + Math.round(-11.6));
System.out.println("Math.round(11.6):" + Math.round(11.6));
// int f = Math.round(-11.5);
// byte d = Math.round(-11.5f);
}
}
運行結(jié)果:
Math.round(-11.5):-11
Math.round(-11.50001):-12
Math.round(11.5):12
Math.round(-11.4):-11
Math.round(11.4):11
Math.round(-11.6):-12
Math.round(11.6):12
Math.round()方法是用來求四舍五入的栅干。由上面運行結(jié)果的對比來看邦蜜,除了負數(shù)有0.5(如-11.5)的情況外字管,其余的都是數(shù)的絕對值四舍五入独泞,再加上相對應(yīng)的正負號呐矾。
從System.out.println("Math.round(-11.5):" + Math.round(-11.5));
的結(jié)果來看(也即所有類似-x.5形式的值),Math.round()方法是偏向于向正無窮方向的懦砂。
對于程序中的int f = Math.round(-11.5);
蜒犯,eclipse提示“Type mismatch: cannot convert from long to int”,所以Math.round()方法默認返回long類型的數(shù)荞膘。而對于byte d = Math.round(-11.5f);
罚随,eclipse則提示“Type mismatch: cannot convert from int to byte”,所以把Math.round()方法里的表達式強制類型轉(zhuǎn)換為float類型的數(shù)據(jù)羽资,返回值的類型就變成了int型淘菩。
最后編輯于 :2018.05.19 18:08:09
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者