Javas | DecimalFormat类、BigDecimal类、Random类
目录:
- 1.DecimalFormat类
- 2.BigDecimal类
- 3.Random类
- 4.需求:编写程序,生成5个不重复的随机数
1.DecimalFormat类
- DecimalFormat 是 NumberFormat 的一个具体子类,用于格式十进制数字。
/*** 关于数字的格式化*/ 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.56DecimalFormat df2 = new DecimalFormat("###,###.0000"); //保留四位数,不够补上0String s2 = df2.format(1234.56);System.out.println(s2); //1,234.5600} }
2.BigDecimal类
BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于Java对象(引用数据类型)。
BigDecimal在java.math.BigDecimal,是Sun提供的一个类,专门用在财务软件中。( 财务软件中double是不够的。)
// BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于Java对象(引用数据类型)。// BigDecimal在java.math.BigDecimal,是Sun提供的一个类,专门用在财务软件中。// 财务软件中double是不够的。//这个100不是普通的100,而是精度极高的100BigDecimal v1 = new BigDecimal(100);//精度极高的 200BigDecimal 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 :用于生成随机数。
//创建随机数对象Random random = new Random();//随机生成一个int类型范围内的数字。int num1 =random.nextInt();System.out.println(num1);//随机生成一个[0~100]范围内的数字。不能产生101int num2 =random.nextInt(101); //不包括101System.out.println(num2);
4.需求:编写程序,生成5个不重复的随机数
需求:编写程序,生成5个不重复的随机数[0-100],最终生成的5个随机数放到数组中,要求数组中的这5个随机数不重复。
/*需求: 编写程序,生成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) {//条件成立了表示包含,返回truereturn true;}}//表示不包含return false;} }