一, java.math.BigDecimal 类
1. 概述
但是 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
数学类
来源: http://www.bubuko.com/infodetail-3259158.html