|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。$ E# S2 s/ M$ u A
具体调整:
* A' k6 u# R( O将:String d = String.valueOf(a* 100); 改为, ?: r4 J$ b: l' q! m% o+ u
String d = String.valueOf(mul(a,100));# T% Q( x2 r4 W: U6 h
- P. j' b8 ]) L6 D8 ]( X r" C增加方法:
/ y S4 H+ j( E# s0 l# vpublic static double mul(double d1,double d2){
. t6 D$ V+ I+ x6 N* v- [ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); ~3 d2 ?3 f( f. h( C
BigDecimal bd2 = new BigDecimal(Double.toString(d2)); ; v" ~, j* M+ D5 F) Q
return bd1.multiply(bd2).doubleValue(); + X3 z3 d0 u9 q
} |
|