位于java.math下的几个类在处理要求准确数值计算时候很有用,如银行的某些项目。
BigDecimal
public class BigDecimalextends Number implements Comparable<BigDecimal>不可变的、任意精度的有符号十进制数
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。
—————————— 一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾
一大堆的构造方法:难懂
!!!!!!!!!!!! 也就是说利用double作为参数的构造函数,无法精确构造一个BigDecimal对象,需要自己指定一个上下文的环境,
也就是指定精确位。而利用String对象作为参数传入的构造函数能精确的构造出一个BigDecimal对象。请看下面的代码:
BigInteger —— 有用的方法估计就是素数的运算,nextProbablePrime() 也没什么用...
public class BigIntegerextends Numberimplements Comparable<BigInteger>不可变的任意精度的整数
所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物—————— 奇怪的东东
BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
MathContext
http://www.2cto.com/kf/201204/128096.html