專案中錢(money)的型別應該用哪個?

2021-08-14 13:55:36 字數 828 閱讀 7877

浮點型(float,double):不適合做錢的型別

double n1=0.03;

double n2=0.02;

system.out.println("double計算:"+(n1-n2));

結果為:0.009999999999999998

float f1=0.02f; 

float f2=0.01f;

system.out.println("float計算:"+(f1-f2));

結果為:0.01  涉及到型別轉換。

bigdecimal bg=new bigdecimal("0.03");

bigdecimal bg1=new bigdecimal("0.02");

//加法

system.out.println("加法:"+bg.add(bg1));

//減法

system.out.println("減法:"+bg.subtract(bg1));

//乘法

system.out.println("乘法:"+bg.multiply(bg1));

//除法

system.out.println("除法:"+bg.divide(bg1));

結果為: 加法:0.05、減法:0.01、乘法:0.0006、除法:1.5。

mony的精度是4位.  

mony的另外乙個好處就是,在匯率轉換

的時候比較方便.並且在顯示的時候,可以多元化.

bigdecimal類是專門為解決浮點數無法精確計算而設計的。並且提供了常用的算術運算方法。特別是與資料庫decimal對映時,bigdecimal是最優方案。

專案中應該避免的情況

1.測試過程中不加思考的機械性測試執行。測試就像建築一樣,先打好圖紙,然後在施工。測試的過程中應該多思考,而不是悶頭呆板的執行。測試的過程中,雖然我們巨集觀上有三輪的指導,但是我們應該將任務加以細化,具體到功能模組,每天分配合理的任務量。2.自以為正確 專案測試的過程中遇到自己解決不了,不確定的事情...

專案中錯誤型別的定義和思考

現在開發業務都是微服務,api呼叫rpc,rpc之間互相呼叫。除了常規的鏈結失敗或超時以外,還有很多業務上的錯誤。為了使返回的錯誤碼容易判斷和查錯,通常會靠乙個統一定義的錯誤 對映表。其實我們平時http的各種錯誤碼也就是乙個對映表。有一種做法是 裡寫死乙個對映表檔案,每次有新增去修改這個檔案。但是...

123 專案中快取資料的型別

在設計快取的資料時,可以快取以下型別的資料 例如如 user enable 以資料庫物件的角度考慮,應用更普遍 例如,使用者的基本資訊 user user.query.filter by id 1 first user user物件 以資料庫查詢的角度考慮,應用場景較特殊,一般僅針對較複雜的查詢進行...