Java高精度数值

    Java中提供了高精度算数的类,BigIntegerBigDecimal类。这两个类类似于int和double,能像他们一样进行加减乘除操作,只是运算速度会慢点,但是却能换来高精度。

    double在运算时,常常会有舍入误差(浮点数运算结果不是精确解),比如下面的例子:

 

public class TestDouble {

	public static void main(String[] args) {
		
		//浮点数乘法
		double a = 0.3333333333333333;
		System.out.println(3 * a);
		
		//BigDecimal乘法
		BigDecimal s1 = new BigDecimal("0.3333333333333333");
		BigDecimal s2 = new BigDecimal("3");
		System.out.println(s1.multiply(s2));
		

	}

}

    运算结果:

    1.0

    0.9999999999999999

 

你可能感兴趣的:(java 高精度)