Math类
基本概念
- java.lang.Math类主要用于提供执行数学运算的方法,如:对数,平方根。
常用方法
public class MathTest {
public static void main(String[] args) {
// static int max(int a, int b)
System.out.println("获取两个整数中最大值的结果是:" + Math.max(10, 20)); // 20
// static int min(int a, int b)
System.out.println("获取两个整数中最小值的结果是:" + Math.min(10, 20)); // 10
// static double pow(double a, double b)
System.out.println("获取次方的结果是:" + Math.pow(2, 3)); // 8.0 返回第一个参数的幂,体现double类型
// static int abs(int a)
System.out.println("获取绝对值的结果是:" + Math.abs(-5)); // 5
// static long round(double a)
System.out.println("进行四舍五入的结果是:" + Math.round(3.14)); // 3
// static double sqrt(double a)
System.out.println("该整数的平方根是:" + Math.sqrt(16)); // 4.0
// static double random()
System.out.println("生成的随机数是:" + Math.random()); // 返回0.0到1.0的随机数
}
}
BigDecimal类
基本概念
- 由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助 java.math.BigDecimal类型加以描述。
常用方法
基础知识:
- BigDecimal类里面没有在整数后面加 .0 体现小数的概念(见下方divide方法)
- 除不尽时要用RoundingMode.HALF_UP四舍五入(RoundingMode:舍入模式)
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalTest {
public static void main(String[] args) {
// 1.构造BigDecimal类型的两个对象
// BigDecimal(String val)
BigDecimal bd1 = new BigDecimal("5.2");
BigDecimal bd2 = new BigDecimal("1.3");
// 2.使用构造完毕的对象实现加减乘除运算
System.out.println("实现加法运算的结果是:" + bd1.add(bd2)); // 6.5
System.out.println("实现减法运算的结果是:" + bd1.subtract(bd2)); // 3.9
System.out.println("实现乘法运算的结果是:" + bd1.multiply(bd2)); // 6.76
System.out.println("实现除法运算的结果是:" + bd1.divide(bd2)); // 4
System.out.println("---------------------------------------------------------------");
// 3.实现精确运算
System.out.println(0.1 + 0.2); // 0.30000000000000004
BigDecimal bd3 = new BigDecimal("0.1");
BigDecimal bd4 = new BigDecimal("0.2");
System.out.println("精确计算的结果是:" + bd3.add(bd4)); // 0.3
System.out.println("---------------------------------------------------------------");
// 4.注意事项
BigDecimal bd5 = new BigDecimal("2");
BigDecimal bd6 = new BigDecimal("0.3");
System.out.println("除法运算的结果是:" + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7
}
}
BigInteger类
基本概念
- 若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述。
常用方法
import java.math.BigInteger;
public class BigIntegerTest {
public static void main(String[] args) {
// 1.构造两个BigInteger类型的对象并指定初始值
BigInteger bi1 = new BigInteger("20");
BigInteger bi2 = new BigInteger("8");
// 2.实现加减乘除取余操作并打印
System.out.println("实现加法运算的结果是:" + bi1.add(bi2)); // 28
System.out.println("实现减法运算的结果是:" + bi1.subtract(bi2)); // 12
System.out.println("实现乘法运算的结果是:" + bi1.multiply(bi2)); // 160
System.out.println("实现除法运算的结果是:" + bi1.divide(bi2)); // 2
System.out.println("实现取余运算的结果是:" + bi1.remainder(bi2)); // 4
System.out.println("-----------------------------------------------------");
// 3.一次性得到商和余数
BigInteger[] arr = bi1.divideAndRemainder(bi2);
for (int i = 0; i < arr.length; i++) {
System.out.println("下标为" + i + "的元素是:" + arr[i]); // 2 4
}
}
}