Javas | DecimalFormat类、BigDecimal类、Random类

目录:

    • 1.DecimalFormat类
    • 2.BigDecimal类
    • 3.Random类
    • 4.需求:编写程序,生成5个不重复的随机数

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

    }
}

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
    

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);
    

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;
        }
    }
    

你可能感兴趣的:(Java知识点-整合,开发语言,Java,DecimalFormat类,BigDecimal类,Random类)