|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。& T( V! Q9 C' Y
具体调整:
/ p6 t {! q' U) S) e- @将:String d = String.valueOf(a* 100); 改为
* l; k7 K7 s% |5 y! V7 wString d = String.valueOf(mul(a,100));
, b" S3 {" h0 r: J1 s* m& R, M4 f- Q& O0 S7 z3 l
增加方法:1 s( q: j( |. u3 _
public static double mul(double d1,double d2){
9 F# P& R& ?- L BigDecimal bd1 = new BigDecimal(Double.toString(d1));
: r& g) ^, E( c% r6 [2 d' W, ~( s BigDecimal bd2 = new BigDecimal(Double.toString(d2));
3 K+ x( j" b% w' x5 w return bd1.multiply(bd2).doubleValue();
! q+ q6 i; r" i) O p } |
|