怎么在java中实现取整

  介绍

怎么在java中实现取整?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一. java中取整数的方式

<强> 1。直接使用强制转换

public  static  void  roundOne () {   System.out.println才能(“正数:10.12 (int),=,,, +, (int) 10.12),,   System.out.println才能(“负数:-10.12 (int),=,,, +, (int) -10.12),,   System.out.println才能(“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻;);   System.out.println才能(“正数:1011111111111111111111.12 (int),=,,, +, (int) 1011111111111111111111.12),,   System.out.println才能(“负数:-1011111111111111111111.12 (int),=,,, +, (int) -1011111111111111111111.12),,   以前,}

直接用强制转换的方式将浮点型数据转换为整型时,直接去掉小数点后部分的精度,取整数部分;直接强制取整有精度风险,一方面是小数位损失,另一方面当浮点型数字超过整型数字最大值时,会发生溢出。实际工程中,如果这两种因素都不会对工程产生影响,可以使用,否则不建议使用。

<强> 2. java中提供的取整的函数

java中提供了三种取整的函数:

,(1).Math。装天花板(双num);

,(2).Math。楼(双num);

,(3).Math。轮(双num);

, public  static  void  roundTwo () {   System.out.println才能(“正数:Math.ceil (10.12),=,,, +, Math.ceil (10.12));   System.out.println才能(“负数:Math.ceil (-10.12),=,,, +, Math.ceil (-10.12));   System.out.println才能(“正数:Math.ceil (101111111111111111111.12),=,,, +, Math.ceil (101111111111111111111.12));   System.out.println才能(“负数:Math.ceil (-101111111111111111111.12),=,,, +, Math.ceil (-101111111111111111111.12));   System.out.println才能(“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻;);   System.out.println才能(“正数:Math.floor (10.12),=,,, +, Math.floor (10.12));   System.out.println才能(“负数:Math.floor (-10.12),=,,, +, Math.floor (-10.12));   System.out.println才能(“正数:Math.floor (101111111111111111111.12),=,,, +, Math.floor (101111111111111111111.12));   System.out.println才能(“负数:Math.floor (-101111111111111111111.12),=,,, +, Math.floor (-101111111111111111111.12));   以前,}

数学。装天花板(双num);函数是取浮点数的天花板数,即不小于num的最小整数;数学。楼(双num)函数是取地板数,即不大于num的最大整数。这两个函数的返回值均是双型(java中当其值大于9999999.0时,默认用科学记数法表示),如果超过没有特殊情况,或者说规则很明确,就一种规则。

public  static  void  roundThree () {   System.out.println才能(“小数点后第一位=5“),,   System.out.println才能(“正数:Math.round (10.5),=,,, +, Math.round (10.5)),,   System.out.println才能(“负数:Math.round (-10.5),=,,, +, Math.round (-10.5)),,   System.out.println才能(),,   ,   System.out.println才能(“小数点后第一位& lt; 5“),,   System.out.println才能(“正数:Math.round (10.46),=,,, +, Math.round (10.46)),,   System.out.println才能(“负数:Math.round (-10.46),=,,, +, Math.round (-10.46)),,   System.out.println才能(),,   ,   System.out.println才能(“小数点后第一位在5“),,   System.out.println才能(“正数:Math.round (10.68),=,,, +, Math.round (10.68)),,   System.out.println才能(“负数:Math.round (-10.68),=,,, +, Math.round (-10.68));   以前,}

数学。轮(双num)函数是取整函数,该函数只关注小数点后第一位小数值,具体规则如下:

(1)。参数的小数点后第一位& lt; 5、运算结果为参数整数部分。

(2)。参数的小数点后第一位在5日运算结果为参数整数部分绝对值+ 1,符号(即正负)不变。

(3)。参数的小数点后第一位=5,正数运算结果为整数部分+ 1,负数运算结果为整数部分。

总结:大于五全部加,等于五正数加,小于五全不加。

二. java中四舍五入的方法

<强> 1。使用BigDecimal对象的方式

public  static  void  roundFour () {   double 才能;f =, 10.2345;   BigDecimal 才能;b0 =, new  BigDecimal (f);   BigDecimal 才能;b1 =, new  BigDecimal (f);   BigDecimal 才能;b2 =, new  BigDecimal (f);   BigDecimal 才能;b3 =, new  BigDecimal (f);   BigDecimal 才能;b4 =, new  BigDecimal (f);   BigDecimal 才能;b5 =, new  BigDecimal (f);   BigDecimal 才能;b6 =, new  BigDecimal (f);   BigDecimal 才能;b7 =, new  BigDecimal (“10.2345“);   ,,   double 才能;f0 =, b0.setScale (3, BigDecimal.ROUND_UP) .doubleValue ();   double 才能;f1 =, b1.setScale (3, BigDecimal.ROUND_DOWN) .doubleValue ();   double 才能;f2 =, b2.setScale (3, BigDecimal.ROUND_CEILING) .doubleValue ();   double 才能;f3 =, b3.setScale (3, BigDecimal.ROUND_FLOOR) .doubleValue ();   double 才能;f4 =, b4.setScale (3, BigDecimal.ROUND_HALF_UP) .doubleValue ();   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在java中实现取整