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 分钟前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
清风拂山岗 明月照大江3 分钟前
Redis笔记汇总
java·redis·缓存
承渊政道5 分钟前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
xiaoxue..19 分钟前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试
JQLvopkk29 分钟前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
忧郁的Mr.Li37 分钟前
SpringBoot中实现多数据源配置
java·spring boot·后端
玄同76542 分钟前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
czy878747544 分钟前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++
消失的旧时光-19431 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
yq1982043011561 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端