java提供了浮点数的任意精度表示类型。在需要高精度浮点的场合,我们可以自由控制有效数字的位数或是小数精度。
package NO5;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
public class Test13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println(1.0/3);
BigDecimal a = new BigDecimal("3.4999999999");
System.out.println(a);
System.out.println(a.precision());//求具体的精度数值
BigDecimal b = new BigDecimal("9.9999999");
BigDecimal c = a.multiply(b); //两个数相乘可以得到一个精确的数值,
//此处不能用运算符 * ,需要调用方法
System.out.println(c);
//c = a.divide(b); //两个数相除不一定得到一个精确的数值,若除不净则,需要指定一个精度值
//System.out.println(c);
//c = a.divide(b,new MathContext(30));
c = a.divide(b,new MathContext(30, RoundingMode.HALF_UP));//RoundingMode是舍入模式
System.out.println(c);
}
}