1.例子
public class Test {
public static void main(String[] args) {
BigDecimal big1 = new BigDecimal(“600”);
BigDecimal big2 = new BigDecimal(“300”);
//兩個BigDecimal相加
big1 = big1.add(big2);
System.out.println(big1);
//兩個BigDecimal相減
big1 = big1.subtract(big2);
System.out.println(big1);
//兩個BigDecimal相乘
big1 = big1.multiply(big2);
System.out.println(big1);
//兩個BigDecimal相除
big1 = big1.divide(big2);
System.out.println(big1);
//如果是Long 型
BigDecimal big3 = BigDecimal.valueOf(200L); big1 = big1.subtract(big3); System.out.println(“big1=” + big1);
}
}
//輸出效果
BigDecimal的用法
2.項目中的應用
public void setPaymentSummaryIdNull(Long paymentId, Long paymentSummaryId) {
Payment payment = payMentRepository.findOne(paymentId);
PaymentSummary summary = paymentSummaryRepository.findOne(78456137l);
int count = findPaymentSummaryIdList(paymentSummaryId).size();//總數
List resultList = findPaymentSummaryIdList(paymentSummaryId);
if (count != 0) {
for (int i = 0; i < count; i++) {
if (resultList.get(i) == paymentId) { //如果list裡的ID等于paymentId總數相減
PaymentSummary paymentSummary = paymentSummaryRepository.findOne(paymentSummaryId);
//paymentSummary.getSummaryFee()是BigDecimal類型,(paymentSummary是實體)
//必須得先把paymentSummary.getSummaryFee()轉換成String 在轉成Double
BigDecimal summaryFee = new BigDecimal
(Double.valueOf(paymentSummary.getSummaryFee().toString())); //得到總金額
BigDecimal paymentFee = new BigDecimal
(Double.valueOf(payment.getFee().toString())); //得到要修改的資料的費用
paymentSummary.setSummaryFee(summaryFee.subtract(paymentFee));//兩個值相減
paymentSummary = paymentSummaryRepository.save(paymentSummary);
}
}
}
payment.getFee();
payment.setPaymentSummary(summary);
payment = payMentRepository.save(payment);
}