|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。$ v5 R' p1 U G
具体调整:
0 i; S# h* g0 m8 ]1 d$ }将:String d = String.valueOf(a* 100); 改为
' I6 i7 S2 r! C+ A! m5 ?String d = String.valueOf(mul(a,100));" S9 N* ~: I4 n! F* L8 O
@/ Z) v3 i% L增加方法:
1 D% E) e) [6 L, b6 i- A6 N+ ?) u; zpublic static double mul(double d1,double d2){ / B! \1 K" p8 A4 ~, @
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
S+ D1 Y, ]- d/ ~8 P BigDecimal bd2 = new BigDecimal(Double.toString(d2));
! \$ ]" R' u2 b+ K! \ return bd1.multiply(bd2).doubleValue();
9 I3 S4 W1 J5 C. m/ T' ] } |
|