💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
>[success] # Math 1. **java.lang.Math**类主要用于提供执行数学运算的方法,如:**对数,平方根** >[danger] ##### 常用的方法 |方法声明 |功能介绍| |--|--| |static int max(int a, int b) |返回两个参数中的最大值| |static int min(int a, int b) |返回两个参数中的最小值| |static double pow(double a, double b) |返回第一个参数的幂| |static int abs(int a) |返回参数指定数值的绝对值| |static long round(double a) |返回参数四舍五入的结果| |static double sqrt(double a) |返回参数的平方根| |static double random() |返回0.0到1.0的随机数| ~~~ package javaTest; public class JavaTest { public static void main(String[] args) { System.out.println("获取两个整数中最大值的结果是:" + Math.max(10, 20)); // 20 System.out.println("获取两个整数中最小值的结果是:" + Math.min(10, 20)); // 10 System.out.println("获取次方的结果是:" + Math.pow(2, 3)); // 8.0 体现double类型 System.out.println("获取绝对值的结果是:" + Math.abs(-5)); // 5 System.out.println("进行四舍五入的结果是:" + Math.round(3.14)); // 3 System.out.println("该整数的平方根是:" + Math.sqrt(16.5)); // 4.06201920231798 System.out.println("生成的随机数是:" + Math.random()); // 随机数 } } ~~~ >[info] ## BigDecimal 1. 由于**float**类型和**double**类型在运算时可能会有误差,若希望实现精确运算则借助**java.math.BigDecimal**类型加以描述 >[danger] ##### 常用的方法 |方法声明| 功能介绍| |--|--| |BigDecimal(String val) |根据参数指定的字符串来构造对象| |BigDecimal add(BigDecimal augend)| 用于实现加法运算| |BigDecimal subtract(BigDecimal subtrahend)| 用于实现减法运算| |BigDecimal multiply(BigDecimal multiplicand)| 用于实现乘法运算| |BigDecimal divide(BigDecimal divisor)| 用于实现除法运算| ~~~ import java.math.BigDecimal; import java.math.RoundingMode; public class BigDecimalTest { public static void main(String[] args) { // 使用 BigDecimal 函数 BigDecimal b1 = new BigDecimal("3.9"); BigDecimal b2 = new BigDecimal("3"); // 开始进行计算 System.out.println("实现加法运算的结果是:" + b1.add(b2)); // 6.9 System.out.println("实现减法运算的结果是:" + b1.subtract(b2)); // 0.9 System.out.println("实现乘法运算的结果是:" + b1.multiply(b2)); // 11.7 System.out.println("实现除法运算的结果是:" + b1.divide(b2)); // 1.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 // BigDecimal 是进行精准计算的如果 在除不尽的情况下会报错 BigDecimal bd5 = new BigDecimal("2"); BigDecimal bd6 = new BigDecimal("0.3"); // // Exception in thread "main" java.lang.ArithmeticException: Non-terminating // decimal expansion; no exact representable decimal result. // System.out.println("除法运算的结果是:" + bd5.divide(bd6)); // 此时需要使用一些 类型规定其值精准度 类似RoundingMode.HALF_UP表示四舍五入 System.out.println("除法运算的结果是:" + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7 } } ~~~ >[info] ## BigInteger 1. 希望表示比long类型范围还大的整数数据,则需要借助**java.math.BigIntege**r类型描述 >[danger] ##### 常用方法 |方法声明 |功能介绍| |--|--| |BigInteger(String val) |根据参数指定的字符串来构造对象| |BigInteger add(BigInteger val) |用于实现加法运算| |BigInteger subtract(BigInteger val) |用于实现减法运算| |BigInteger multiply(BigInteger val)| 用于实现乘法运算| |BigInteger divide(BigInteger val) |用于实现除法运算| |BigInteger remainder(BigInteger val) |用于实现取余运算| |BigInteger[] divideAndRemainder(BigInteger val) |用于实现取商和余数的运算| ~~~ 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 } } } ~~~