|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。
& H% }9 C0 j8 e7 I& k具体调整:
# M5 u4 P% w `) W9 `& [将:String d = String.valueOf(a* 100); 改为
0 c: n" o: C, [String d = String.valueOf(mul(a,100));
+ w; }+ @' D* T0 N* {* {. ?3 |' K" y7 Y1 G
增加方法:- P. u3 N( F- H! _; `+ V2 @
public static double mul(double d1,double d2){
5 }# f6 }. V: J/ h0 g( g6 d BigDecimal bd1 = new BigDecimal(Double.toString(d1)); 8 k& g1 P* G/ y+ L+ L$ M! B4 m, y
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
/ h, s& \# Y0 f5 o$ E return bd1.multiply(bd2).doubleValue(); % R9 s8 b4 V* M
} |
|