Java中如何完美处理双精度浮点数相加和相减的长尾问题?
- 内容介绍
- 相关推荐
本文共计1147个文字,预计阅读时间需要5分钟。
我也就不多说了,大家还是直接看代码吧!关于double的计算不够精确,可能会出现类似0.0000000000000002的误差,正确的做法是使用BigDecimal或者使用整型。整型方法适合于已知精度已知的货币计算情况。
我就废话不多说了,大家还是直接看代码吧~
/** * double的计算不精确,会有类似0.0000000000000002的误差,正确的方法是使用BigDecimal或者用整型 * 整型地方法适合于货币精度已知的情况,比如12.11+1.10转成1211+110计算,最后再/100即可 * 以下是摘抄的BigDecimal方法: */ public class DoubleUtils implements Serializable { private static final long serialVersionUID = -3345205828566485102L; // 默认除法运算精度 private static final Integer DEF_DIV_SCALE = 2; /** * 提供精确的加法运算。
本文共计1147个文字,预计阅读时间需要5分钟。
我也就不多说了,大家还是直接看代码吧!关于double的计算不够精确,可能会出现类似0.0000000000000002的误差,正确的做法是使用BigDecimal或者使用整型。整型方法适合于已知精度已知的货币计算情况。
我就废话不多说了,大家还是直接看代码吧~
/** * double的计算不精确,会有类似0.0000000000000002的误差,正确的方法是使用BigDecimal或者用整型 * 整型地方法适合于货币精度已知的情况,比如12.11+1.10转成1211+110计算,最后再/100即可 * 以下是摘抄的BigDecimal方法: */ public class DoubleUtils implements Serializable { private static final long serialVersionUID = -3345205828566485102L; // 默认除法运算精度 private static final Integer DEF_DIV_SCALE = 2; /** * 提供精确的加法运算。

