Java中的取整、四舍五入
1、直接强制转换--取整
public class temp { public static void main(String[] args) { System.out.println("正数:(int)10.12 = " + (int)10.12); System.out.println("负数:(int)-10.12 = " + (int)-10.12); System.out.println("---------------------------------"); System.out.println("正数:(int)1011111111111111111111.12 = " + (int)1011111111111111111111.12); System.out.println("负数:(int)-1011111111111111111111.12 = " + (int)-1011111111111111111111.12); } }
结果:
-
直接用强制转换的方式将浮点型数据转换为整型时,直接去掉小数点后部分的精度,取整数部分; 直接强制取整有精度风险 一方面是小数位损失 另一方面当浮点型数字超过整型数字最大值时,会发生溢出 实际工程中,如果这两种因素都不会对工程产生影响,可以使用,否则不建议使用。
2、Java提供的函数
-
double Math.ceil(double num); Math.ceil(double num);函数是取浮点数的天花板数,即不小于num的最小整数; double Math.floor(double num); Math.floor(double num)函数是取地板数,即不大于num的最大整数。 Math.round(double num); 参数的小数点后第一位<5,运算结果为参数整数部分。 参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。 参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。