比較
必須使用compareTo進行比較,看返回結果是-1、0、1判斷兩個數是A大于B,等于B,還是小于B。
calcResult.getTotalPRomotion().compareTo(BigDecimal.ZERO) > 0dangdangVipDiscount.compareTo(BigDecimal.valueOf(100)) == 0轉換
BigDecimal沒有提供自動裝箱的支持,所以不能直接和原始數據進行比較、運算,在比較或者運算前需要把非BigDecimal的數據轉成BigDecimal數據:
BigDecimal.valueOf(100)乘除
要先乘后除,以防止除不盡時(而小數計算時大多情況會出現除不盡),被舍棄的小數的影響被后續的乘法進一步放大。
promotionPriceMap.get(productId).multiply(promotionPrice).divide(totalPrice, 2, BigDecimal.ROUND_HALF_UP)精確到指定位數
salePrice.multiply(shopVIPDiscount).setScale(2, RoundingMode.HALF_UP)price.divide(total, 2, BigDecimal.ROUND_HALF_UP)//可能不能除盡的情況使用discount.divide(10) //確定能夠除盡的情況使用新聞熱點
疑難解答