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;
        }
    }
相关推荐
小满、1 分钟前
RabbitMQ:AMQP 原理、Spring AMQP 实战与 Work Queue 模型
java·rabbitmq·java-rabbitmq·spring amqp·amqp 协议·work queue
萧曵 丶2 分钟前
Java Stream 实际用法详解
java·stream·lambda
消失的旧时光-19433 分钟前
从 Android 回调到 C 接口:函数指针 + void* self 的一次彻底理解
android·c语言·开发语言
dvlinker3 分钟前
动态代理技术实战测评—高效解锁Zillow房价历史
android·java·数据库
喵手4 分钟前
JVM 基础知识:深入理解 Java 的运行时环境!
java·jvm·jvm基础·java运行环境
我命由我123455 分钟前
Python Flask 开发问题:ImportError: cannot import name ‘escape‘ from ‘flask‘
服务器·开发语言·后端·python·flask·学习方法·python3.11
简烦8 分钟前
外层事务的 afterCommit 中调用内层事务方法时,内层事务的 TransactionSynchronization 注册失败 / 不执行
java·spring
峥嵘life9 分钟前
Android16 EDLA 认证BTS测试Failed解决总结
android·java·linux·运维·学习
elangyipi12312 分钟前
JavaScript 高级错误处理与 Chrome 调试艺术
开发语言·javascript·chrome
wniuniu_13 分钟前
object->osd
android·java·数据库