码迷,mamicode.com
首页 > 编程语言 > 详细

BigDecimal及精度算法

时间:2015-07-28 00:42:12      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

一、包介绍

  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及精度算法

标签:

原文地址:http://www.cnblogs.com/JustForJava/p/4681378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!