|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。$ c- j; h+ x$ D
具体调整:6 T2 U& A0 k3 Q! p8 F1 R9 L( [, `
将:String d = String.valueOf(a* 100); 改为+ y% n$ Z5 R* T9 o0 `! H; a; l
String d = String.valueOf(mul(a,100));1 L' U1 L7 `( k, F6 R; j1 {7 U& ^
. N* F2 l/ _( `3 @增加方法:0 |+ V% u/ T. J/ ]0 }$ D
public static double mul(double d1,double d2){
/ M- Q) a0 Q, _ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); . O$ \$ D# ~, ^/ j& h
BigDecimal bd2 = new BigDecimal(Double.toString(d2)); 3 L; A2 G0 i& M
return bd1.multiply(bd2).doubleValue(); " d- U/ I( @7 d# G( f
} |
|