当前位置: 代码迷 >> J2SE >> String转double的有关问题
  详细解决方案

String转double的有关问题

热度:6249   发布时间:2013-02-25 00:00:00.0
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();
  相关解决方案