Java double相加,数字精度问题;两个数相加会多出很多位,进度问题:1.7999999999999998,诸如此类;这种问题一般是单纯的将double相加:
0.12+0.6
所出现
- 方法实例:
public static void main(String[] arg){
double d1 = 1.2;
double d2 = 0.6;
double d3 = 0.01;
System.out.print("----");
System.out.print(d1+d2+d3); //此处值为:1.8099999999999998
System.out.print("----");
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
BigDecimal bd3 = new BigDecimal(Double.toString(d3));
System.out.print(bd3.add(bd1.add(bd2)).doubleValue()); //此处值为:1.81 ---- 用此方法解决问题
}