1. 程式人生 > 實用技巧 >JAVA中價格金額的儲存型別

JAVA中價格金額的儲存型別

在java專案中,我們會遇到價格、金額的資料,這時候我們java中應該用BigDecimal型別,資料庫用decimal型別, 長度可以自定義, 如18; 小數點我們專案中用的是2, 保留2位小數. 此外還要注意的就是預設值,一定寫成0.00,不要用預設的NULL, 否則在進行加減排序等操作時, 會帶來轉換的麻煩。

以下是一些換算程式碼

package com.bigdecimal;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test {



    public static void
main(String[] args) { BigDecimal num=new BigDecimal("2"); BigDecimal num1=new BigDecimal("0.01"); //加法 System.out.println(num.add(num1)); //減法 System.out.println(num.subtract(num1)); //乘法 System.out.println(num.multiply(num1)); //除法 System.out.println(num.divide(num1, RoundingMode.HALF_UP));
//比較兩個數大小 if (num.compareTo(num1)==-1){ System.out.println(num+"小於"+num1); }else if (num.compareTo(num1)==0){ System.out.println(num+"等於"+num1); }else if (num.compareTo(num1)==1){ System.out.println(num+"大於"+num1); } //精度換算 BigDecimal num2=new
BigDecimal("4.281"); //刪除多餘的小數位 System.out.println(num2.setScale(2,BigDecimal.ROUND_DOWN)); //直接進位 System.out.println(num2.setScale(2,BigDecimal.ROUND_UP)); //四捨五入 System.out.println(num2.setScale(2,BigDecimal.ROUND_HALF_UP)); //五舍六入 System.out.println(num2.setScale(2,BigDecimal.ROUND_HALF_DOWN)); } }

結果

2.01
1.99
0.02
200
2大於0.01
4.28
4.29
4.28
4.28