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;
        }
    }
相关推荐
Tester_孙大壮11 分钟前
Python爬虫技术科普
开发语言·爬虫·python
点点滴滴的记录15 分钟前
Java的CompletableFuture实现原理
java·开发语言·javascript
xiaolingting16 分钟前
Java 引用是4个字节还是8个字节?
java·jvm·引用·指针压缩
程序猿online18 分钟前
nvm安装使用,控制node版本
开发语言·前端·学习
一只傻小白,21 分钟前
JAVA项目中freemarker静态模板技术
java·开发语言
袁庭新21 分钟前
Spring Boot项目接收前端参数的11种方式
java·springboot·袁庭新·如何接收前端数据·boot接收数据
机跃23 分钟前
递归算法常见问题(Java)
java·开发语言·算法
程序员-小李43 分钟前
餐厅下单助手系统(Java+MySQL)
java·开发语言·mysql
开心工作室_kaic1 小时前
springboot496基于java手机销售网站设计和实现(论文+源码)_kaic
java·开发语言·智能手机
像少年啦飞驰点、1 小时前
SpringBoot + HttpSession 自定义生成sessionId
java·开发语言