java 计算溢出
在 java/js 中decimal类型进行计算(累加之类的),计算结果之后还有一切乱七八在的数据,不晓得啥原因。但是解决方案如下:
1. 在java中的解决方案,步骤:
a. 把decimal的数据转化成double类型:
double xmz = 0D;
BigDecimal zxMz = zx.getMz();
xmz= zxMz==null?0D:zxMz.doubleValue();
b. 将转化后的double数据,进行计算,之后通过DecimalFormat格式化下:
java.text.DecimalFormat df = new java.text.DecimalFormat("#.0000");
df.format(xmz+(zxMz==null?0D:zxMz.doubleValue())));
c. 最后将DecimalFormat格式化之后的数据,转化成double类型:
Double.valueOf(df.format(xtj+(zxTj==null?0D:zxTj.doubleValue())));
java.text.DecimalFormat df = new java.text.DecimalFormat("#.0000");
BigDecimal zxMz = zx.getMz();//zx.getMz()这个是我的程序里面通过get获取的数据
double xmz = 0D;
xmz = Double.valueOf(df.format(xmz+(zxMz==null?0D:zxMz.doubleValue())));
2.在js中解决办法:
用substring,截取
最后,如果能在sql语句中计算,就直接在sql中计算吧,这样可以避免上述的问题