AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

爭論不休的一個話題:金額到底是用Long還是BigDecimal?

來源: 責編: 時間:2024-04-15 18:16:43 205觀看
導讀在網上一直流傳著一個爭論不休的話題:金額到底是用Long還是用BigDecimal?這個話題一出在哪都會引起異常無比激烈的討論。。。。 比如說這個觀點:算錢用BigDecimal是常識圖片圖片有支持用Long的,將金額的單位設計為分,然后

在網上一直流傳著一個爭論不休的話題:金額到底是用Long還是用BigDecimal?這個話題一出在哪都會引起異常無比激烈的討論。。。。 比如說這個觀點:算錢用BigDecimal是常識Zx028資訊網——每日最新資訊28at.com

圖片圖片Zx028資訊網——每日最新資訊28at.com

圖片圖片Zx028資訊網——每日最新資訊28at.com

有支持用Long的,將金額的單位設計為分,然后乘以100,使用Long進行存儲以及計算,這樣不用擔心小數點問題。Zx028資訊網——每日最新資訊28at.com

阿里巴巴開發手冊.pngZx028資訊網——每日最新資訊28at.com

但是在一些金融系統當中,對小數位要求比較高的,比如精確到小數點后6位,那么我們使用Long進行存儲,每次在計算時都要除以或者乘以1000000,那么計算的開銷就很大了。Zx028資訊網——每日最新資訊28at.com

并且,如果在需求確認時,我們無法知道金額要求的小數位,那我們使用Long也是不行的,我們并不知道需要乘以或者除以多少個0。Zx028資訊網——每日最新資訊28at.com

選擇BigDecimal

BigDecimal是Java提供的一個類,用于任意精度的算術運算。它的主要優點是提供了高精度的計算,這對于金融和貨幣計算來說是非常重要的。BigDecimal可以表示任意大小的正數、負數或零,并可以精確控制舍入行為。并且在數據庫中存儲時也有對應的類型進行匹配,比如MySQL的DECIMAL類型提供了精確的數值存儲,可以匹配BigDecimal的精度。Zx028資訊網——每日最新資訊28at.com

但是BigDecimal也有一些缺點:Zx028資訊網——每日最新資訊28at.com

  1. 1. 性能:與Long相比,BigDecimal的性能較差。因為它的運算需要更多的內存和CPU時間。
  2. 2. 復雜性:使用BigDecimal進行運算比使用Long或基本數據類型更復雜。你需要考慮舍入模式、精度等因素。
  3. 3. 在數據庫中需要更多的存儲空間來存儲小數部分。

而在Mysql的開發手冊中,建議金額需要進行小數位計算時,存儲要使用Decimal,否則我們要將金額乘以對應小數位的倍數變成BIGINT進行存儲。Zx028資訊網——每日最新資訊28at.com

Mysql開發手冊.pngZx028資訊網——每日最新資訊28at.com

總結

基于上述對Long和BigDecimal的優缺點分析,我們可以得出以下結論:Zx028資訊網——每日最新資訊28at.com

在金額計算層面,即代碼實現中,推薦使用BigDecimal進行所有與金額相關的計算。BigDecimal提供了高精度的數值運算,能夠確保金額計算的精確性,避免了因浮點數精度問題導致的財務誤差。使用BigDecimal可以簡化代碼邏輯,減少因處理精度問題而引入的復雜性。Zx028資訊網——每日最新資訊28at.com

而在數據庫存儲方面,我們需要根據具體需求進行權衡。如果業務需求已經明確金額只需精確到分(如某些國家/地區的貨幣最小單位為分),并且我們確信不會涉及到需要更高精度的小數計算,那么可以使用Long類型進行存儲,將金額轉換為最小貨幣單位(如分)進行存儲。這樣可以節省存儲空間并提高查詢性能。Zx028資訊網——每日最新資訊28at.com

但是如果業務需求中金額的小數位數不確定,或者可能涉及多位小數的計算(如國際貨幣交易等),那么最好使用DECIMAL或NUMERIC類型進行存儲。這些類型提供了精確的數值存儲,可以確保數據庫中的數據與應用程序中的BigDecimal對象保持一致,避免數據轉換過程中可能引入的精度損失。Zx028資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-83636-0.html爭論不休的一個話題:金額到底是用Long還是BigDecimal?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 面試官追問的STW,到底什么是STW?有什么影響?

下一篇: 2024 年了,Facebook、Google 竟然都不用 Git 管理代碼?

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據博主數碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協調和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現手段有以下幾種方式:Object 類下
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 支持aptX Lossless無損傳輸 iQOO TWS 1賽道版發布限時優惠價369元

    2023年7月4日,“無損音質,聲動人心”iQOO TWS 1正式發布,支持aptX Lossless無損傳輸,限時優惠價369元。iQOO TWS 1耳機率先支持端到端aptX Lossless無
  • iQOO Neo8 Pro評測:旗艦雙芯加持 最強性能游戲旗艦

    【Techweb評測】去年10月,iQOO推出了一款Neo7手機,該機搭載了聯發科天璣9000+,配備獨顯芯片Pro+,帶來了同價位段最佳的游戲體驗,一經上市便受到了諸多用
Top