精度问题,谢谢!
double d=8.7;
d*200=1739.9999999999998;
如何才能成为1740?
------解决方案--------------------Math.round(d*200)=1740
不过注意返回的是long类型的哦,如果需要double要注意转换
------解决方案--------------------强制转化成int型或用float型都可以
------解决方案--------------------楼上的 强制转换int 难道不是 直接丢掉 小数点后面的 数字吗???
float倒是可以
------解决方案--------------------这是浮点数的精度问题,没有办法的,如果你只是想显示得好看些,可以改成:
System.out.printf( "%.2f%n ", d*200 );
------解决方案--------------------用BigDecimal
------解决方案--------------------up