|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。1 B5 H6 z) q6 d
具体调整:
( @3 C/ _- |, I+ f- D6 f# V f& Y将:String d = String.valueOf(a* 100); 改为
; _! ~* Q! L0 X, A# S/ \* tString d = String.valueOf(mul(a,100));* c; b. l8 S" b) n" ?
# K r/ R" R" ~增加方法:+ s: P8 k; U! X. L, K
public static double mul(double d1,double d2){ ! G1 V- r, R. r% O7 P; C
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
4 q- G+ Z) @# l) T& v BigDecimal bd2 = new BigDecimal(Double.toString(d2));
5 |# h1 ~7 q" c6 f return bd1.multiply(bd2).doubleValue();
3 f3 n6 P, D2 v# c- K } |
|