十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇文章給大家分享的是有關(guān)深入淺析BigDecimal在Java中的作用 ,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1.引言
借用《Effactive Java》這本書中的話,float和double類型的主要設(shè)計目標是為了科學計算和工程計算。他們執(zhí)行二進制浮點運算,這是為了在廣域數(shù)值范圍上提供較為精確的快速近似計算而精心設(shè)計的。然而,它們沒有提供完全精確的結(jié)果,所以不應該被用于要求精確結(jié)果的場合。但是,商業(yè)計算往往要求結(jié)果精確,例如銀行存款數(shù)額,這時候BigDecimal就派上大用場啦。
2.BigDecimal簡介
BigDecimal 由任意精度的整數(shù)非標度值 和32 位的整數(shù)標度 (scale) 組成。如果為零或正數(shù),則標度是小數(shù)點后的位數(shù)。如果為負數(shù),則將該數(shù)的非標度值乘以 10 的負scale 次冪。因此,BigDecimal表示的數(shù)值是(unscaledValue × 10-scale)。
3.測試代碼
3.1構(gòu)造函數(shù)(主要測試參數(shù)類型為double和String的兩個常用構(gòu)造函數(shù))
BigDecimal aDouble =new BigDecimal(1.22); System.out.println("construct with a double value: " + aDouble); BigDecimal aString = new BigDecimal("1.22"); System.out.println("construct with a String value: " + aString);