精华内容
下载资源
问答
  • Java中数字的四舍五入取整

    千次阅读 2020-06-18 17:31:15
    Java中对数字进行四舍五入取整处理经常使用Math库中的三个方法: ceil floor round 1 ceil 向上取整 ceil英文释义:天花板。天花板在上面,所以是向上取整,好记了。 Math.ceil 函数接收一个double类型的参数...

    Java中对数字进行四舍五入或取整处理经常使用Math库中的三个方法:

    • ceil
    • floor
    • round

    1 ceil 向上取整

    ceil英文释义:天花板。天花板在上面,所以是向上取整,好记了。

    Math.ceil 函数接收一个double类型的参数,用于对数字进行向上取整(遇小数进1),即返回一个大于或等于传入参数的最小整数(但还是以double类型返回)。

    2 floor 向下取整

    floor英文释义:地板。地板在下面,所以是向下取整,好记了。

    Math.floor 函数接收一个double类型的参数,用于对数字进行向下取整(遇小数忽略),即返回一个小于或等于传入参数的最大整数(但还是以double类型返回)。

    3 round 四舍五入

    round英文释义:附近。一个小数附近的整数,想象一下参数在数轴上的位置,是离哪头的整数近就取哪头的整数,那就是四舍五入,好记了。

    Math.round 函数接收一个floatdouble类型的参数,用于对数字进行四舍五入,即返回一个离传入参数最近的整数(如果传入参数是float返回int类型结果,如果传入参数是double返回long类型结果)。

    4 案例

    以上三个方法,举例如下:

    public class Number {
        public static void main(String[] args){
            System.out.println("1.0 ceil:"+Math.ceil(1.0));
            System.out.println("1.1 ceil:"+Math.ceil(1.1));
            System.out.println("1.6 ceil:"+Math.ceil(1.6));
            System.out.println("1.4 floor:"+Math.floor(1.4));
            System.out.println("1.6 floor:"+Math.floor(1.6));
            System.out.println("1.1 round:"+Math.round(1.1f));
            System.out.println("1.6 round:"+Math.round(1.6d));
        }
    }
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 转载博客地址: http://blog.csdn.net/tkwdmylove/article/details/51794265 import Java.math.BigDecimal;  import java.text.DecimalFormat; public class TestGetInt{  public static void main(Stri

    转载博客地址:

    http://blog.csdn.net/tkwdmylove/article/details/51794265


    import Java.math.BigDecimal; 
    import java.text.DecimalFormat;

    public class TestGetInt{ 
    public static void main(String[] args){ 
       double i=2, j=2.1, k=2.5, m=2.9; 
       System.out.println("舍掉小数取整:Math.floor(2)=" + (int)Math.floor(i)); 
       System.out.println("舍掉小数取整:Math.floor(2.1)=" + (int)Math.floor(j)); 
       System.out.println("舍掉小数取整:Math.floor(2.5)=" + (int)Math.floor(k)); 
       System.out.println("舍掉小数取整:Math.floor(2.9)=" + (int)Math.floor(m)); 
                                            
       /* 这段被注释的代码不能正确的实现四舍五入取整 
       System.out.println("四舍五入取整:Math.rint(2)=" + (int)Math.rint(i)); 
       System.out.println("四舍五入取整:Math.rint(2.1)=" + (int)Math.rint(j)); 
       System.out.println("四舍五入取整:Math.rint(2.5)=" + (int)Math.rint(k)); 
       System.out.println("四舍五入取整:Math.rint(2.9)=" + (int)Math.rint(m)); 
       
       System.out.println("四舍五入取整:(2)=" + new DecimalFormat("0").format(i)); 
       System.out.println("四舍五入取整:(2.1)=" + new DecimalFormat("0").format(i)); 
       System.out.println("四舍五入取整:(2.5)=" + new DecimalFormat("0").format(i)); 
       System.out.println("四舍五入取整:(2.9)=" + new DecimalFormat("0").format(i)); 
       */ 
       
       System.out.println("四舍五入取整:(2)=" + new BigDecimal("2").setScale(0, BigDecimal.ROUND_HALF_UP)); 
       System.out.println("四舍五入取整:(2.1)=" + new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP)); 
       System.out.println("四舍五入取整:(2.5)=" + new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP)); 
       System.out.println("四舍五入取整:(2.9)=" + new BigDecimal("2.9").setScale(0, BigDecimal.ROUND_HALF_UP));

       System.out.println("凑整:Math.ceil(2)=" + (int)Math.ceil(i)); 
       System.out.println("凑整:Math.ceil(2.1)=" + (int)Math.ceil(j)); 
       System.out.println("凑整:Math.ceil(2.5)=" + (int)Math.ceil(k)); 
       System.out.println("凑整:Math.ceil(2.9)=" + (int)Math.ceil(m));

       System.out.println("舍掉小数取整:Math.floor(-2)=" + (int)Math.floor(-i)); 
       System.out.println("舍掉小数取整:Math.floor(-2.1)=" + (int)Math.floor(-j)); 
       System.out.println("舍掉小数取整:Math.floor(-2.5)=" + (int)Math.floor(-k)); 
       System.out.println("舍掉小数取整:Math.floor(-2.9)=" + (int)Math.floor(-m)); 
       
       System.out.println("四舍五入取整:(-2)=" + new BigDecimal("-2").setScale(0, BigDecimal.ROUND_HALF_UP)); 
       System.out.println("四舍五入取整:(-2.1)=" + new BigDecimal("-2.1").setScale(0, BigDecimal.ROUND_HALF_UP)); 
       System.out.println("四舍五入取整:(-2.5)=" + new BigDecimal("-2.5").setScale(0, BigDecimal.ROUND_HALF_UP)); 
       System.out.println("四舍五入取整:(-2.9)=" + new BigDecimal("-2.9").setScale(0, BigDecimal.ROUND_HALF_UP));

       System.out.println("凑整:Math.ceil(-2)=" + (int)Math.ceil(-i)); 
       System.out.println("凑整:Math.ceil(-2.1)=" + (int)Math.ceil(-j)); 
       System.out.println("凑整:Math.ceil(-2.5)=" + (int)Math.ceil(-k)); 
       System.out.println("凑整:Math.ceil(-2.9)=" + (int)Math.ceil(-m)); 
       } 
    }

    //_____________________________

    舍掉小?取整:Math.floor(2)=2
    舍掉小?取整:Math.floor(2.1)=2
    舍掉小?取整:Math.floor(2.5)=2
    舍掉小?取整:Math.floor(2.9)=2
    四舍五入取整:(2)=2
    四舍五入取整:(2.1)=2
    四舍五入取整:(2.5)=3
    四舍五入取整:(2.9)=3
    ?整:Math.ceil(2)=2
    ?整:Math.ceil(2.1)=3
    ?整:Math.ceil(2.5)=3
    ?整:Math.ceil(2.9)=3
    舍掉小?取整:Math.floor(-2)=-2
    舍掉小?取整:Math.floor(-2.1)=-3
    舍掉小?取整:Math.floor(-2.5)=-3
    舍掉小?取整:Math.floor(-2.9)=-3
    四舍五入取整:(-2)=-2
    四舍五入取整:(-2.1)=-2
    四舍五入取整:(-2.5)=-3
    四舍五入取整:(-2.9)=-3
    ?整:Math.ceil(-2)=-2
    ?整:Math.ceil(-2.1)=-2
    ?整:Math.ceil(-2.5)=-2
    ?整:Math.ceil(-2.9)=-2

    ===================================================

            BigDecimal b = new BigDecimal(9.655 );
            //double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

            System.out.println("f1=" + f1);//f1=9.65
            BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
            System.out.println("mData=" + mData);//mData=9.66

    public BigDecimal(double val)
    将  double 转换为  BigDecimal,后者是  double 的二进制浮点值准确的十进制表示形式。返回的  BigDecimal 的标度是使  (10scale × val)为整数的最小值。

    注:

    1. 此构造方法的结果有一定的不可预知性。有人可能认为在 Java 中写入 new BigDecimal(0.1) 所创建的 BigDecimal 正好等于 0.1(非标度值 1,其标度为 1),但是它实际上等于 0.1000000000000000055511151231257827021181583404541015625。这是因为 0.1 无法准确地表示为double(或者说对于该情况,不能表示为任何有限长度的二进制小数)。这样,传入到构造方法的值不会正好等于 0.1(虽然表面上等于该值)。
    2. 另一方面,String 构造方法是完全可预知的:写入 new BigDecimal("0.1") 将创建一个 BigDecimal,它正好 等于预期的 0.1。因此,比较而言,通常建议优先使用 String 构造方法
    3. 当 double 必须用作 BigDecimal 的源时,请注意,此构造方法提供了一个准确转换;它不提供与以下操作相同的结果:先使用 Double.toString(double)方法,然后使用 BigDecimal(String) 构造方法,将 double 转换为 String。要获取该结果,请使用 static valueOf(double) 方法。

    展开全文
  • java四舍五入取整

    2018-01-06 15:22:09
    http://blog.csdn.net/tkwdmylove/article/details/51794265
    展开全文
  • 下面小编就为大家带来一篇java 四舍五入保留小数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Math类中提供了5个与取整相关的函数,如下所示: static double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。...static double rint(double a):四舍五入函数,返回与a的值最

    Math类中提供了5个与取整相关的函数,如下所示:

    static double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。

    static double floor(double a):地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。

    static double rint(double a):四舍五入函数,返回与a的值最相近的整数(但是以浮点数形式存储)。    

    static long round(double a):四舍五入函数,返回与a的值最相近的长整型数。

    static int round(float a):四舍五入函数,返回与a的值最相近的整型数。

    2示例

    Java |  复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    package  net.xsoftlab.baike;
     
    import  java.util.Scanner;
     
    public  class  Math_Round {
         public  static  void  main(String args[]) {
             double  num;
             Scanner in =  new  Scanner(System.in);
             System.out.print( "请输入一个浮点数:" );
             num = in.nextDouble();
             double  cnum = Math.ceil(num);
             System.out.println( "大于"  + num +  "的最小数:"  + cnum);
             double  fnum = Math.floor(num);
             System.out.println( "小于"  + num +  "的最大数:"  + fnum);
             double  rnum = Math.rint(num);
             System.out.println(num +  "四舍五入得到浮点数:"  + rnum);
             long  lnum = Math.round(num);
             System.out.println(num +  "四舍五入得到长整数:"  + lnum);
         }
    }
    展开全文
  • JAVA中double转int类型按四舍五入取整(实用)

    万次阅读 多人点赞 2019-01-22 14:31:15
    public static void main(String[] args) { System.out.println("...// 97 (去掉小数凑整:不管小数是多少,都进一) System.out.println("向下取整" + (int) Math.floor(96.8));// 96 (去掉小数...
  • Java中对double和float数进行四舍五入取整,得到一个整数。 numFloat 就是目标数,number 是我们得到的数值。 float numFloat = 6.34f; int number = (int) (numFloat + 0.5f);这里没有用到函数,只是简单巧妙地加...
  • 一.java种取整数的方式 1.直接使用强制转换 public static void roundOne(){ System.out.println("正数:(int)10.12 = " + (int)10.12); System.out.println("负数:(int)-10.12 = " + (int)-10.12); S
  • 代码如下: public static void main(String[] args) { System.out.println("向上取整:" + (int) Math.ceil(96.1));// 97 (去掉小数凑整:不管小数是多少,都进一) ... System.out.println("四舍五入
  • java四舍五入和向上取整Math.round()

    千次阅读 2018-12-12 11:05:58
    四舍五入 Math.round(f);   向上取整 (int) Math.round((f+0.5));   在Android Studio中测试一下(P.s.本人是Android开发) Log.i(TAG, "Math.round测试:"+roundtest((float) 11.1,true)+"...
  • 向上取整:Math.ceil...四舍五入取整:Math.round(double a)  例: Math.ceil(24.1)--> 25 Math.floor(24.8)--> 24 Math.round(24.1)--> 24 Math.round(24.8)--> 25...
  • java取整java四舍五入方法

    千次阅读 2015-06-16 17:22:43
    import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public static void main(String[] args){ ...double i=2, j=2.1, k=2.5, m=...System.out.println("小数取整:Math.fl
  • 内容: import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public static void main(String[] args){ double i=2, j=2.1, k=2.5, m=2.9;... System.out.println("掉小...
  • java 四舍五入取整

    万次阅读 2016-06-30 23:30:54
    import java.math.BigDecimal;  import java.text.DecimalFormat; public class TestGetInt{  public static void main(String[] args){  ... double i=2, j=2.1, k=2.5, m=2.9... System.out.println("小数
  • 向上取整:Math.ceil(double a) ...四舍五入取整:Math.round(double a) 例: Math.ceil(24.1)–> 25 Math.floor(24.8)–> 24 Math.round(24.1)–> 24 Math.round(24.8)–> 25
  • 在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采用的是“四舍六入五成双”的方法,如下面的例子,就是用“四舍六入五成双”得到的结果: double d1 = Math.Round(1.25, 1);//1.2double d2 = Math....
  • 4、Math.round()方法(round实质是四舍五入取整,下面原理就是将小数所取位数之前都变为整数之后再除运算) System.out.println("--------第四种使用Math的round()方法----------"); double round = Math....
  • java中小数点的四舍五入处理

    千次阅读 2017-09-21 16:11:31
    //小数点的四舍五入  BigDecimal b=new BigDecimal(doubleValue);  double  endValue=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); 其中doubleValue是你需要转换的double类型的变量;   “2”是你要...
  • java小数向上四舍五入 四舍五入应该就在眼前 (Rounding should be right at hand) In many areas, rounding that accurately follows specific rules are needed - accounting, statistics, insurance, etc. 在...
  • java四舍五入成整数的方法

    万次阅读 2018-05-23 15:00:07
    java的Math类中,提供了许许多多的和数学计算有关的方法,其中也包括取整的... 但是,其中和四舍五入相近的方法只有rint和round方法,如果单独使用这两个方法的话,所得到的结果和我们预期的结果不一样, 比如r...
  •  System.out.println("四舍五入取整:(2.1)=" + new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP));  System.out.println("四舍五入取整:(2.5)=" + new BigDecimal("2.5").setScale(0, BigDecimal....
  • * 数据计算结果处理(四舍五入,保留一位小数) * @param member 分子 * @param denominator 分母 * @return */ public static String dateProcessing(int member,int denominator){ floa...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,846
精华内容 4,338
关键字:

java小数四舍五入取整

java 订阅