31-如果要求精确的答案,请避免使用float和double
2010-05-20 14:38
411 查看
在以下场合,不能使用浮点数运算。
1、货币
可以使用分为单位.
2、精确计算
BigDecimal 可以自己控制舍入,基本没有位数限制。但是慢。
当9位以下使用int,18位以下使用long.
去年年底就有一个case,是计算正负概率,然后做归一化。 计算概率 有很多诸如 p= n/s 的表达式,归一化后,分子分母约分,最后剩下一个连乘的分子 和连乘的分母。当时得到的结果与标准结果有差异,后来才发现,由于连乘很多,使用double 被截断了。后来上网一查,发现有BigDecimal 类可以做到全精度。
1、货币
可以使用分为单位.
2、精确计算
BigDecimal 可以自己控制舍入,基本没有位数限制。但是慢。
当9位以下使用int,18位以下使用long.
去年年底就有一个case,是计算正负概率,然后做归一化。 计算概率 有很多诸如 p= n/s 的表达式,归一化后,分子分母约分,最后剩下一个连乘的分子 和连乘的分母。当时得到的结果与标准结果有差异,后来才发现,由于连乘很多,使用double 被截断了。后来上网一查,发现有BigDecimal 类可以做到全精度。
相关文章推荐
- 如果要求精确的答案,请避免使用float和double
- 如果要求精确的答案,请避免使用float和double
- 如果要求精确的答案,请避免使用float和double
- 第48条:如果需要精确的答案,请避免使用float和double
- 如果需要精确答案,请避免使用float和double
- 《effective java》48—如果需要精确的答案,请避免使用float和double
- 第48条:如果需要精确的答案,请避免使用float和double
- 第四十八条:如果需要精确的答案,请避免使用float和double
- Java:Effective Java 学习笔记(第48条:如果需要精确的答案,请避免使用float和double)
- Effective Java读书笔记--如果想要知道精确的答案,就要避免使用double和float
- 表达式之谜2找零时刻(需要精确答案的地方,避免使用float和double;货币运算使用int,long或BigDecimal)
- Effective Java(2nd Edition) Item 48 如果需要精确结果,请避免使用float与double(译文)
- 需要精确答案,避免使用float和double
- 在对于精确计算的要求下请不要使用float和double
- 天天记录 - Java 精确计算避免使用float和double
- 精确运算避免使用float和double
- 精确运算避免使用float和double
- [读书笔记][Effective Java]不要在精确计算中使用float和double类型
- 金额,数值精确推荐BigDecimal,请勿使用double,float