• Javas | DecimalFormat类、BigDecimal类、Random类


    1.DecimalFormat类

    • DecimalFormatNumberFormat 的一个具体子类用于格式十进制数字
    /**
     * 关于数字的格式化
     */
    public class DecimalFormatTest01 {
        public static void main(String[] args) {
            // java.text.DecimalFormat : 专门负责数字格式化的
            //DecimalFormat df = new DecimalFormat("数字格式");
    
            /*
              数字格式有:
              # 代表任意数字
              , 代表千分位
              . 代表小数点
              0 代表不够时补0
    
              ###,###.##  表示:  加入千分位,保留2个小数
             */
            DecimalFormat df1 = new DecimalFormat("###,###.##");
            String s1 = df1.format(1234.561232);
            System.out.println(s1); //1,234.56
    
        DecimalFormat df2 = new DecimalFormat("###,###.0000"); //保留四位数,不够补上0
            String s2 = df2.format(1234.56);
            System.out.println(s2); //1,234.5600
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    2.BigDecimal类

    • BigDecimal 属于大数据,精度极高不属于基本数据类型,属于Java对象(引用数据类型)

    • BigDecimal在java.math.BigDecimal,是Sun提供的一个类,专门用在财务软件中。( 财务软件中double不够的。)

           // BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于Java对象(引用数据类型)。
              // BigDecimal在java.math.BigDecimal,是Sun提供的一个类,专门用在财务软件中。
              // 财务软件中double是不够的。
      
              //这个100不是普通的100,而是精度极高的100
              BigDecimal v1 = new BigDecimal(100);
              //精度极高的 200
              BigDecimal v2 = new BigDecimal(200);
      
              /*
          对两个“精度极高”的数进行“加减乘除 等操作”,因为都是引用,不能直接进行操作,可调用方法
               */
      
              //求和
              BigDecimal v3 = v2.add(v1);
              System.out.println(v3); //300
      
              //相减
              BigDecimal v4 = v2.subtract(v1);
              System.out.println(v4); //100
      
              //相乘
              BigDecimal v5 = v2.multiply(v1);
              System.out.println(v5); //20000
      
              //相除
              BigDecimal v6 = v2.divide(v1);
              System.out.println(v6); //2
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28

    3.Random类

    • random用于生成随机数

         //创建随机数对象
         Random random = new Random();
      
         //随机生成一个int类型范围内的数字。
         int num1 =random.nextInt();
         System.out.println(num1);
      
      
         //随机生成一个[0~100]范围内的数字。不能产生101
         int num2 =random.nextInt(101); //不包括101
         System.out.println(num2);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

    4.需求:编写程序,生成5个不重复的随机数

    • 需求:编写程序,生成5个不重复的随机数[0-100],最终生成的5个随机数放到数组中,要求数组中的这5个随机数不重复。

      /*
        需求: 
        编写程序,生成5个不重复的随机数[0-100],最终生产的5个数放到数组中,要求这5个数不重复。
       */
      public class RandomTest01 {
          public static void main(String[] args) {
      
              //创建Random对象
              Random random = new Random();
              //准备一个长度为5的一维数组
              int[] arr = new int[5];
              //为该一维数组设置初始值
              for (int i = 0; i<arr.length;i++) {
                  arr[i] = -1;
              }
              //循环,生成随机数
              int index = 0;
              while (index < arr.length) {
                  //生成随机数
                  int num = random.nextInt(101); //此处设置为5可测试代码是否有bug
                  //判断arr数组中是否有这个num,如果没有这个num,就放进去
                  if (!contains(arr,num)) {
                      arr[index] = num;
                      index++;
                  }
              }
      
              //遍历以上数组
              for (int i = 0; i < arr.length; i++) {
                  System.out.println(arr[i]);
              }
          }
      
          //该方法:用来判断数组中是否包含某个元素
          public static boolean contains(int[] arr,int key){
              for (int i = 0; i < arr.length; i++) {
                  if (arr[i] == key) {
                      //条件成立了表示包含,返回true
                      return true;
                  }
              }
              //表示不包含
              return false;
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
  • 相关阅读:
    基于Java+SpringBoot+Vue前后端分离家政服务管理系统的设计与实现【Java毕业设计·文档报告·代码讲解·安装调试】
    JAVA-编程基础-11-03-java IO 字节流
    史上第三大收购案,博通以 610 亿美元收购 VMware
    03-迭代器生成器
    比传统BPM更惊艳:基于低代码的流程管理系统
    Web安全——穷举爆破上篇(仅供学习)
    基于ESP32实现一个WIFI透传模块demo
    Hadoop集群搭建(包成功!!!)-----------MapReduce原理详解
    《算法系列》之树
    Vue之scope属性
  • 原文地址:https://blog.csdn.net/m0_70720417/article/details/132887830