在科学计算及工程计算时,常常用float或者double类型;在商业计算中受制于浮点运算二进制的表示方式,无法精确表示分数,为此Java提供了两个对大数字(超过16位有效位)进
行高精度计算的操作类:
1、java.math.BigInteger:针对整数的处理;
2、java.math.BigDecimal:针对小数的处理。
它支持任何精度的定点数,可以用它来精确计算货币值。
BigDecimal类实现用到了BigInteger类,不同的是BigDecimal类运算时加入了小数的概念。
BigDecimal类创建的是对象,不能使用传统的+、-、*、/等算术运算符直接对其进行数学运算,而必须调用其对应的方法.方法的参数也必须是BigDecimal类型的对象.
四种方法:
add()、subtract()、mutiply()、divide()
构造 BigDecimal 对象常用以下方法:
1、BigDecimal BigDecimal(double d); //影响精度不推荐使用,见下文示例
2、BigDecimal.valueOf(double d); //常用,推荐使用
3、BigDecimal(String s); //常用,推荐使用
示例:
BigDecimal bd = BigDecimal.valueOf(1.0002); BigDecimal bd1 = new BigDecimal("1.3333"); BigDecimal bd2 = new BigDecimal(1.2222); System.out.println(bd); System.out.println(bd1); System.out.println(bd2);