BigDecimal及精度算法

一、包介绍

  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)

你可能感兴趣的:(BigDecimal)