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这是怎么回事呢?
Double.parseDouble( str );
结果不是199.45,而是199.4499999999999990
2、a=19 , b=99.63;
c = a*b
结果不是1892.97,而是1892.96999999999998这是怎么回事呢?
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();
如果要精确计算,可以使用BigDicemal
如果要按要求显示,可以自己format
a=19 , b=99.63;
c = a*b
String s = String.format("%.2f", c);
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();