31-如果要求精确的答案,请避免使用float和double

来源:互联网 发布:加密软件对比 编辑:程序博客网 时间:2024/04/19 09:00

在以下场合,不能使用浮点数运算。

1、货币

     可以使用分为单位.

2、精确计算

    

 

BigDecimal 可以自己控制舍入,基本没有位数限制。但是慢。

当9位以下使用int,18位以下使用long.

 

 

去年年底就有一个case,是计算正负概率,然后做归一化。 计算概率 有很多诸如  p= n/s 的表达式,归一化后,分子分母约分,最后剩下一个连乘的分子 和连乘的分母。当时得到的结果与标准结果有差异,后来才发现,由于连乘很多,使用double 被截断了。后来上网一查,发现有BigDecimal 类可以做到全精度。

原创粉丝点击