近期对一算费项目进行Code Review,发现commiter很喜欢使用BigDecimal
的以下构造函数处理浮点数对象:
java.math.BigDecimal#BigDecimal(double)
这样是不合适的,在使用 BigDecimal 时,为了防止精度丢失,推荐使用以下方法去创建对象。
java.math.BigDecimal#BigDecimal(java.lang.String)
java.math.BigDecimal#valueOf(double)
其实不论是方法注释还是《阿里巴巴 Java 开发手册》中,对这部分内容都有提到: