摘要: 两个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)