Allin Program

Java 中浮点数的处理

近期对一算费项目进行Code Review,发现commiter很喜欢使用BigDecimal的以下构造函数处理浮点数对象:

java.math.BigDecimal#BigDecimal(double)

这样是不合适的,在使用 BigDecimal 时,为了防止精度丢失,推荐使用以下方法去创建对象。

java.math.BigDecimal#BigDecimal(java.lang.String)


java.math.BigDecimal#valueOf(double)

其实不论是方法注释还是《阿里巴巴 Java 开发手册》中,对这部分内容都有提到:
20211213102222601.png