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

String转double的有关问题

2012-11-01 
String转double的问题1、String str 199.45Double.parseDouble( str )结果不是199.45,而是199.4499999

String转double的问题
1、String str = "199.45"
  Double.parseDouble( str );
  结果不是199.45,而是199.4499999999999990
2、a=19 , b=99.63;
  c = a*b
  结果不是1892.97,而是1892.96999999999998

这是怎么回事呢?

[解决办法]
要精确计算的时候不要使用float和double,是近似值
DecimalFormat dc = new DecimalFormat();
double num = (Double)dc.parse(s);

BigDecimal bd1 = new BigDecimal(Integer.toString(a));
BigDecimal bd2 = new BigDecimal(Double.toString(b));
double c = bd1.multiply(bd2).doubleValue();

热点排行