Java-浮点数运算

248 阅读1分钟

推荐用法:

public static void main(String[] args) {
		double d1 = 1;
		double d2 = 20.2;
		double d3 = 300.03;
		double d4 = d1 + d2 +d3;
		System.out.println("double结果:"+ d4);	//321.22999999999996
		System.out.print("===================\n");
		BigDecimal b1 = new BigDecimal(Double.toString(d1));
		BigDecimal b2 = new BigDecimal(Double.toString(d2));
		BigDecimal b3 = new BigDecimal(Double.toString(d3));
		b2=b1.add(b2).add(b3);
		System.out.println("BigDecimal结果:"+b2);	//321.23
	}

1.比较浮点数相等:两者之差小于10E-6

2.new BigDecimal(Double d);不可靠,也会造成精度丢失

参考博客:

blog.csdn.net/yacolspace/…