一、包介绍
java.math,提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
BigInteger 除提供任意精度之外,它类似于 Java 的基本整数类型,因此在 BigInteger 上执行的操作不产生溢出,也不会丢失精度。除标准算法操作外,
BigInteger 还提供模 (modular) 算法、GCD 计算、基本 (primality) 测试、素数生成、位处理以及一些其他操作。
BigDecimal 提供适用于货币计算和类似计算的任意精度的有符号十进制数字。BigDecimal 允许用户对舍入行为进行完全控制,并允许用户选择所有八个舍入模式。
二、BigDecimal
public class BigDecimal extends Number implements Comparable<BigDecimal> {}
BigDecimal继承自Number类:
package java.lang; /** * The abstract class Number is the superclass of classes BigDecimal, BigInteger,Byte, Double, Float,Integer, Long, andShort. * @author Lee Boynton * @author Arthur van Hoff * @version 1.30, 11/17/05*/ public abstract class Number implements java.io.Serializable { public abstract int intValue(); public abstract long longValue(); public abstract float floatValue(); public abstract double doubleValue(); public byte byteValue() { return (byte)intValue(); } public short shortValue() { return (short)intValue(); } private static final long serialVersionUID = -8742448824652078965L; }
Number类是BigDecimal, BigInteger,Byte, Double, Float,Integer, Long, andShort的父类,作者是Lee Boynton和Arthur van Hoff。
1、public int scale() :返回此BigDecimal的标度。
如果是0或者正数,则标度是小数点后的位数;
如果是负数,则将改数的非标度值乘以10的负scale次幂,例如-3的标度是指非标度值乘以1000.
2、加法:BigDecimal add(BigDecimal augent) 返回一个 BigDecimal,其值为 (this + augend),其标度为 max(this.scale(), augend.scale())。
注:augent,被加数。
3、除法:BigDecimal divide(BigDecimal divisor)
4、乘法:BigDecimal multiply(BigDecimal multiplicand)