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

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

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

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

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

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

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

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

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

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

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

選擇BigDecimal

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

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

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

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

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

總結

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問我,如何才能學好IO流,對各種流的概念,云里霧里的,不求甚解。用到的時候,現百度,功能雖然實現了,但是為什么用這個?不知道。更別說效率問題了~下次再遇到,
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 小米MIX Fold 3下月亮相:今年唯一無短板的全能折疊屏

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都有新的進展,其中榮耀、三星都已陸續發布了最新的折疊屏旗艦,尤其號榮耀Magi
  • 信通院:小米、華為等11家應用商店基本完成APP簽名及驗簽工作

    中國信通院表示,目前,小米、華為、OPPO、vivo、360手機助手、百度手機助手、應用寶、豌豆莢和努比亞等9家應用商店,以及抖音和快手2家新型應用分發平
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • iQOO 11S新品發布會

    iQOO將在7月4日19:00舉行新品發布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
  • iQOO Neo8 Pro評測:旗艦雙芯加持 最強性能游戲旗艦

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

    5月11日消息,谷歌在今天凌晨舉行了I/O大會,本次發布會谷歌帶來了自家的AI語言模型PaLM 2、谷歌Pixel Fold折疊屏、谷歌Pixel 7a手機,同時發布了Androi
Top