|
发表于 2014-11-27 15:40:14
|
显示全部楼层
java中double的运算都要转化为bigdecimal来计算,否则容易产生精度问题。
' l( F9 M' {% Y" V具体调整:
3 U/ M7 O& c1 Q# m将:String d = String.valueOf(a* 100); 改为
- ~$ @' V2 S& q g6 w1 h3 qString d = String.valueOf(mul(a,100));
% F9 w, @! l) \' I% B! u: o/ l- l; n: B6 t0 e1 F
增加方法:1 O1 u: I) ^. J+ _4 q4 s- g" v% v2 L
public static double mul(double d1,double d2){ $ ]2 s6 j+ n# t+ G
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
+ U/ s7 ]9 H: F: L$ I2 S8 l BigDecimal bd2 = new BigDecimal(Double.toString(d2)); % u' o* p+ R4 \0 z
return bd1.multiply(bd2).doubleValue();
, z4 u% y5 y' O' y' X, y } |
|