算法与数学之美 2019-10-27
一、java.math.BigDecimal类
1. 概述
在Java语言中,描述浮点数使用float 类型 和 double类型。
但是float 类型 和 double类型都会有误差,为了实现精确计算。可以使用java.math.BigDecimal类 加以描述。
2. 常用方法 (和差积商)
构造方法: BigDecimal(String val) -根据参数指定的字符串来构造对象
BigDecimal add(BigDecimal augend) -返回 计算调用对象 和 参数对象的 和
BigDecimal subtract(BigDecimal subtrahend) -返回 计算调用对象 和 参数对象的 差
BigDecimal multiply(BigDecimal multiplicand) -返回 计算调用对象 和 参数对象的 积
BigDecimal divide(BigDecimal divisor) --返回 计算调用对象 和 参数对象的 商
代码演示:
import java.math.BigDecimal; public class BigDecimalTest { public static void main(String[] args) { // 创建两个 BigDecimal类型的对象 BigDecimal bd1 = new BigDecimal("5.2"); BigDecimal bd2 = new BigDecimal("0.4"); // 进行加法运算 BigDecimal result = bd1.add(bd2); System.out.println("bd1 + bd2 = "+result); // 进行减法运算 result = bd1.subtract(bd2); System.out.println("bd1 - bd2 = "+result); // 进行乘法运算 result = bd1.multiply(bd2); System.out.println("bd1 * bd2 = "+result); // 进行除法运算 result = bd1.divide(bd2); System.out.println("bd1 / bd2 = "+result); } }
结果:
bd1 + bd2 = 5.6 bd1 - bd2 = 4.8 bd1 * bd2 = 2.08 bd1 / bd2 = 13
二、java.math.BigInteger类
1. 概述
在Java语言中描述整数首选int类型,若int类型范围不够用则使用long类型。
若long类型还是不够用,则使用 java.math.BigInteger类 建议描述。
2. 常用方法
代码演示
import java.math.BigDecimal; import java.math.BigInteger; public class BigIntegerTest { public static void main(String[] args) { // 创建两个BigInteger对象 BigInteger bi1 = new BigInteger("52"); BigInteger bi2 = new BigInteger("13"); // // 进行加法运算 BigInteger result = bi1.add(bi2); System.out.println("bi1 + bi2 = "+result); // 进行减法运算 result = bi1.subtract(bi2); System.out.println("bi1 - bi2 = "+result); // 进行乘法运算 result = bi1.multiply(bi2); System.out.println("bi1 * bi2 = "+result); // 进行除法运算 result = bi1.divide(bi2); System.out.println("bi1 / bi2 = "+result); } }
运行结果:
bi1 + bi2 = 65 bi1 - bi2 = 39 bi1 * bi2 = 676 bi1 / bi2 = 4