摘要:
两个double的变量相加,结果却出乎意料之外。例如:
double A = 20, B = 10.26;
double C = A + B = 30.25999999998;
为什么会出现这个结果,参考了很多网友的答案,原因应该是“2进制和16进制转换的时候的偏度差造成的”。在处理财务相关的数据时,这样的N次偏差可能会使结果完全不可取。
改正的方法是,在执行加运算前,先将A执行ToString,再ToBigDecimal,执行BigDecimal.Add运算之后再返回BigDecimal.doubleValue。 阅读全文
posted @ 2013-04-26 17:27
脸谱匠
阅读(566)
评论(0)
推荐(0)