Javas | DecimalFormat类、BigDecimal类、Random类

目录:

1.DecimalFormat类

  • DecimalFormatNumberFormat 的一个具体子类用于格式十进制数字
java 复制代码
/**
 * 关于数字的格式化
 */
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不够的。)

    java 复制代码
         // 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 :用于生成随机数

    java 复制代码
       //创建随机数对象
       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个随机数不重复。

    java 复制代码
    /*
      需求: 
      编写程序,生成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;
        }
    }
相关推荐
字节卷动10 分钟前
【牛客刷题】活动安排
java·算法·牛客
fouryears_2341717 分钟前
Spring核心原理的快速入门:快速了解IoC与DI
java·后端·spring
顽疲28 分钟前
从零用java实现 小红书 springboot vue uniapp(13)模仿抖音视频切换
java·vue.js·spring boot
presenttttt40 分钟前
用Python和OpenCV从零搭建一个完整的双目视觉系统(四)
开发语言·python·opencv·计算机视觉
每日出拳老爷子1 小时前
[C#] 使用TextBox换行失败的原因与解决方案:换用RichTextBox的实战经验
开发语言·c#
星辰离彬1 小时前
Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
java·服务器·数据库·后端·mysql·性能优化
半桔1 小时前
【Linux手册】从接口到管理:Linux文件系统的核心操作指南
android·java·linux·开发语言·面试·系统架构
nightunderblackcat1 小时前
新手向:实现ATM模拟系统
java·开发语言·spring boot·spring cloud·tomcat·maven·intellij-idea
开开心心就好1 小时前
电脑息屏工具,一键黑屏超方便
开发语言·javascript·电脑·scala·erlang·perl
Bug退退退1231 小时前
RabbitMQ 高级特性之延迟队列
java·spring·rabbitmq·java-rabbitmq