Java中对数据的处理

发布于:2023-01-18 ⋅ 阅读:(630) ⋅ 点赞:(0)

数字的格式化
/*
数字的格式化

 */

import java.text.DecimalFormat;

public class DecimalFormatTest01 {
    public static void main(String[] args) {
        //java.text.DecimalFormat专门负责数字格式化
        /*
        # 代表任意数字
        , 代表千分位
        。 代表小数点
        0  代表不够时补0
         */
        DecimalFormat df = new DecimalFormat("###,###.0000");
        String s = df.format(1234.56);
        System.out.println(s);//1,234.5600
    }
}
财务数据处理BigDecimal
/*
1、BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于Java对象(引用数据类型)这是一个SUM公司提供的一个类。专门在财务软件中使用
2、注意:财务软件中double是不够的,要使用java.math.BigDecimal
 */

import java.math.BigDecimal;

public class BigDecimalTest01 {
    public static void main(String[] args) {
        BigDecimal v1 = new BigDecimal(100);//精度极高的大数据
        BigDecimal v2 = new BigDecimal(200);
        //求和(v1 + v2不行,v1 v2都是引用不能直接使用“求和”)
        BigDecimal v3 = v1.add(v2);
        System.out.println(v3);//300
        //除法
        BigDecimal v4 = v2.divide(v1);
        System.out.println(v4);//2
    }
}
生成随机数
/*
随机数
 */
import java.util.Arrays;
import java.util.Random;
public class randomTest01 {
    public static void main(String[] args) {
        //创建随机数对象
        Random random = new Random();
        //随机产生一个int类型取值范围内的数字
        int num1 = random.nextInt();
        System.out.println(num1);
        //产生[0-100]之间的随机数,不能产生01
        //nextInt翻译为:下一个int类型的数据是01,表示只能取值到100
        int  num2 = random.nextInt(101);//不包含101
        System.out.println(num2);
        randomTest011();
    }
    //生成5个不重复的随机数,重复的重新生成,放在数组当中
    public static void randomTest011() {
        Random random1 = new Random();
        //准备一个长度为5的一维数组
        int[] arr = new int[5];//默认值为0
        for (int i = 0; i < 5; i++) {
            arr[i] = -1;
        }
        //循环 生成随机数
        int index = 0;
        while (index < arr.length) {
            //生成0-100之间的随机数
            int num3 = random1.nextInt(101);
            //判断arr数组中是否已经有生成的这个数
            if (!contains(arr, num3)) {
                arr[index] = num3;
                index++;
            }
        }
        for (int i = 0; i <index ; i++) {
            System.out.println(arr[i]);
        }
    }
    public static boolean contains(int[] arr,int key){
        //以下方案有bug,升序出错
           //对数组进行升序
//            Arrays.sort(arr);
//            //进行二分法查找
//            //二分法查找时,查找结果大于等于0说明存在该数据
//            return Arrays.binarySearch(arr,key) >=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == key)
                return true;
        }
        return false;
    }
}

活动地址:CSDN21天学习挑战赛


网站公告

今日签到

点亮在社区的每一天
去签到