因为double本身有数值范围的限制,在处理金钱等需要高精度的数据时,我们会考虑使用BigDecimal。但是在使用BigDecimal时,有很多需要我们注意的细节。本文主要针对精度问题来进行说明。
设置和获取Scale精度
我们可能都知道BigDecimal是有精度的,通过以下几个setScale()重载方法,可以对精度进行设置。
BigDecimal | setScale(int newScale)Returns a BigDecimal whose scale is the specified value, and whose value is numerically equal to this BigDecimal's. |
BigDecimal | setScale(int newScale, int roundingMode)Returns a BigDecimal whose scale is the specified value, and whose unscaled value is determined by multiplying or dividing this BigDecimal's unscaled value by the appropriate power of ten to maintain its overall value. |
BigDecimal |