首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

精度有关问题,多谢

2012-03-11 
精度问题,谢谢!doubled8.7d*2001739.9999999999998如何才能成为1740?[解决办法]Math.round(d*200)=174

精度问题,谢谢!
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

热点排行
Bad Request.