Random类
1. 简介
java.util.Random
类通过基于种子数的随机算法迭代生成随机数。虽然产生的数字是随机的,但在相同种子数下,相同次数的随机数生成结果会保持一致(伪随机特性)。
2. 构造方法
Random()
:使用系统时间作为种子构造Random对象Random(long seed)
:使用指定种子数构造Random对象
// 验证伪随机数特性
Random random = new Random(100);
Random random1 = new Random(100);
int num = random.nextInt();
int num1 = random1.nextInt();
System.out.println("num = " + num);
System.out.println("num1 = " + num1);
3. 常用方法
nextInt()
:生成int类型随机数nextInt(int bound)
:生成[0, bound)范围内的随机整数nextLong()
:生成long类型随机数nextFloat()
:生成[0,1)范围内的单精度浮点数nextDouble()
:生成[0,1)范围内的双精度浮点数nextBoolean()
:生成等概率的true/false随机布尔值
BigInteger和BigDecimal
1. 简介
BigInteger
:支持任意精度的整数运算BigDecimal
:支持任意精度的浮点数运算 两者都用于需要精确计算的场景
2. 创建方式
new BigInteger()
new BigInteger(String val, int radix)
:将指定进制的字符串转为十进制new BigDecimal()
BigInteger.valueOf()
BigDecimal.valueOf()
Scanner.nextBigInteger()
Scanner.nextBigDecimal()
3. 常用方法
add()
:加法运算intValue()
:将BigInteger转为intdoubleValue()
:将BigDecimal转为doublesubtract()
:减法运算multiply()
:乘法运算divide()
:除法运算(BigInteger只保留整数部分,BigDecimal用法不同)remainder()
:求余运算divideAndRemainder()
:返回商和余数的BigInteger数组max()
:取最大值min()
:取最小值
RoundingMode舍入模式
模式 | 描述 |
---|---|
UP | 远离零方向舍入,始终对非零舍弃部分前面的数字加1 |
DOWN | 向零方向舍入(截尾处理),从不对舍弃部分前面的数字加1 |
CEILING | 向正无限大方向舍入:正数行为同UP,负数行为同DOWN |
FLOOR | 向负无限大方向舍入:正数行为同DOWN,负数行为同UP |
HALF_UP | 四舍五入:舍弃部分≥0.5时行为同UP,否则同DOWN |
HALF_DOWN | 五舍六入:舍弃部分>0.5时行为同UP,否则同DOWN |
HALF_EVEN | 银行家舍入法:舍弃部分左边数字为奇数时同HALF_UP,偶数时同HALF_DOWN |
UNNECESSARY | 舍弃值为0时正常处理,否则抛出ArithmeticException |