java 数学相关类

本文介绍了Java Math类中的核心方法,如min、max、ceil、floor、round,以及如何生成随机数,包括基本随机数、随机整数和格式化数字。此外,还展示了高精度计算和数值格式化的应用实例。
摘要由CSDN通过智能技术生成

Math常用方法

//min(x,y)返回两个数较小的,  max(x,y)返回两个数较大的
System.out.println( Math.min(10, 20));      //10
System.out.println( Math.max(4.5, 3.9));    //4.5

//ceil(x)返回大于等于x的最小整数, floor(x)返回小于等于x的最大整数
System.out.println( Math.ceil(3.1));    //4.0
System.out.println( Math.floor(3.9));   //3.0
System.out.println( Math.ceil(-3.1));    //-3.0
System.out.println( Math.floor(-3.9));   //-4.0

//round(x)四舍五入,其实就是把x加0.5后向下取整
System.out.println( Math.round(3.1));       //3
System.out.println( Math.round(3.8));       //4
System.out.println( Math.round(3.5));       //4
System.out.println( Math.round(-3.5));       //-3

Math随机数

//random()返回 [ 0 , 1)范围内的随机小数
for (int i = 0; i < 10; i++) {
System.out.println( Math.random());
}
//创建随机数对象
Random random = new Random();
//生成[0,1)范围内的随机小数
for (int i = 0; i < 5; i++) {
	System.out.println( random.nextDouble());
}
//生成随机整数
for (int i = 0; i < 5; i++) {
	System.out.println( random.nextInt());
}

//生成[0, limit)范围内的随机整数
for (int i = 0; i < 5; i++) {
	System.out.println( random.nextInt( 100 ));
}

Math数字格式化

DecimalFormat df = new DecimalFormat("###,###.0000");   //0表示数字时,不足的位数会补0
System.out.println(df.format(9138.129875)); //9,138.1299

//重新规定格式
df.applyPattern("###,###.00");
System.out.println(df.format(9138.129875)); //9,138.13

高精度应用

DecimalFormat df = new DecimalFormat("###,###.0000");   //0表示数字时,不足的位数会补0
System.out.println(df.format(9138.129875)); //9,138.1299
//重新规定格式
df.applyPattern("###,###.00");
System.out.println(df.format(9138.129875)); //9,138.13
// 小数采用近似值保存,不准确
System.out.println(2 - 1.1);    //0.8999999999999999
BigInteger i1 = new BigInteger("19569813275872698346923685987132");
BigInteger i2 = new BigInteger("9285791872984491283578325687137");
BigInteger i3;
//相加
i3 = i1.add(i2);
System.out.println(i3); //28855605148857189630502011674269
//相减
i3 = i1.subtract(i2);
System.out.println(i3); //10284021402888207063345360299995
//乘
i3 = i1.multiply(i2);
System.out.println(i3); //181721213072922706607923870993737364126487668878964932039921084
//除
i3 = i1.divide(i2);
System.out.println(i3); //2
//小数相除,如果除不断,会抛出异常
BigDecimal d1 = new BigDecimal("1129874917891827.1983275928");
BigDecimal d2 = new BigDecimal("187246817246.198327");
BigDecimal d3;
//d3 = d1.divide(d2); //ArithmeticException算术异常
//小数相除,通常调用divide( divisior除数,scale小数位数,roundingMode尾数处理方式 )
d3 = d1.divide(d2, 10, RoundingMode.CEILING);
System.out.println(d3); //6034.1475198814
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值