Java数学类之---------Random UUID BigInteger BigDecimal DecimalFormat

  1. 数学相关的类
     
      (2)Random类
        所属的包:java.lang包,需要import导入;
        没有任何继承关系,默认继承Object类;
        有自己的构造方法,可以创建对象:Random r = new Random();
        常用的方法:
           r.nextInt();随机产生一个int型整数,有正有负,返回值是int型;
           r.nextInt(int bound);随机产生一个0~bound之间的整数,
           返回值类型是int型;
              注意:bound必须是整数;否则会出现如下异常:
              IllegalArgumentException 非法参数异常;
           r.nextFloat();随机产生一个[0.0~1.0)的小数,返回值是float型;
           r.nextBoolean();随机产生一个boolean值 : true false
     (3)UUID类
        所属的包:java.util包,需要import导入;
        没有任何继承关系,默认继承Object类;
        含有带参数的构造方法,没有无参构造方法,我们通常不会创建对象;
          UUID uuid = UUID.randomUUID();
          System.out.println(uuid);
          System.out.println(uuid.toString());
          出现32位的随机元素,每一个位置是一个16进制的数字;
          toString()被重写了;
     (4) BigInteger类
        所属的包:java.math包 ,需要import导入;
        继承了Number类;
        没有无参构造方法,构造方法都是有参数的;
         一般利用带String参数的构造方法创建对象;
         BigInteger bi = new BigInteger(“123”);
        类中常用的方法:
         四则运算
         add(参数) ,subtract(参数) ,multyply(参数) ,divide(参数);参数都是BigInteger类的对象;
        小例子
          计算5的阶乘:
     BigInteger b1 = new BigInteger("5");
        BigInteger result = new BigInteger("1");
        for (int i = 1;i <= b1.intValue();i++){
            result = result.multiply(new BigInteger(i + ""));
        }
        System.out.println(result);//120

(5)BigDecimal类 //只能处理小数点之后的位数
     所属的包:java.math包,需要import导入;
     继承了Number类;
     通常通过带String参数创建对象;
     常用的方法
        四则运算
        add(),subtract(),multyply(),divide()
         setScale(2,BigDecimal.ROUND_DOWN)方法可以格式化小数,BigDecimal.ROUND_DOWN指的是你想要的模式,如下图:
在这里插入图片描述
     模式有这些:ROUND_DOWN;
         ROUND_SEILING;
         ROUND_FLOOR;
         ROUND_HALF_DOWN;
         ROUND_HALF_EVEN;
         ROUND_HALF_UP;
         ROUND_UP;
         ROUND_UNNECESSARY;
         
 (6)DecimalFormat类 可以格式化小数点前和小数点后面的位数
     所属的包:java.text 需要import导入;
     继承了NmberFormat类;
     通过一个带String参数的构造方法创建对象 0 #
     调用format方法讲一个小数格式化成一个字符串类型;

        DecimalFormat df = new DecimalFormat("000.###");
        System.out.println(df.format(123.456));//123.456
        System.out.println(df.format(12.456));//012.456
        System.out.println(df.format(12.45));//012.45
        System.out.println(df.format(123.45));//123.45
        System.out.println(df.format(1234.45));//1234.45
        System.out.println(df.format(1234.5678));//1234.568
        //小数点前有几个0,那么小数点前保留几位,若是不够,则用0添;若是超了那么就保留原来的整数位数;
        //小数点后有几个0,那么小数点后面就保留几位数,若是不够,则用0添;若是超出,则四舍五入;
        //小数点前不管有几个#,返回的小数,小数点前面的位数都不变;
        //小数点后面有几个#,就保留几位数;若是不够,则保留原来的小数点后面的部分;若是超出,则四舍五入;

猜你喜欢

转载自blog.csdn.net/qq_40791843/article/details/91878232