精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何處理JavaScript 中的貨幣值?

企業(yè)動態(tài)
無論在銀行應(yīng)用程序、電子商務(wù)網(wǎng)站還是證券交易所平臺,我們每天都在與金錢互動。我們也越來越依賴技術(shù)來處理問題。

金錢無處不在。

無論在銀行應(yīng)用程序、電子商務(wù)網(wǎng)站還是證券交易所平臺,我們每天都在與金錢互動。我們也越來越依賴技術(shù)來處理問題。

然而,關(guān)于如何以編程處理貨幣價(jià)值尚無共識。雖然金錢是現(xiàn)代社會中普遍存在的概念,但相較于日期和時(shí)間之類的東西,它并不是任何主流語言中的***數(shù)據(jù)類型。結(jié)果,每一種軟件都有自己的處理方式,且伴隨著陷阱。

陷阱#1:金錢僅僅是數(shù)字?

當(dāng)你需要代表錢時(shí),你的***直覺可能是使用一個(gè)數(shù)字。

金錢只不過是一個(gè)數(shù)值,對吧?

錯(cuò)了。

貨幣價(jià)值的一部分與另一對象有關(guān):貨幣。沒有10“錢”,應(yīng)該是“10美元,10歐元,10比特幣”......如果你想用不同的貨幣添加兩個(gè)貨幣值,你需要先轉(zhuǎn)換它們。如果你想比較它們也是如此:如果你只有一個(gè)金額,你就無法進(jìn)行準(zhǔn)確的比較。金額和貨幣誰也離不開誰。

陷阱#2:讓人煩惱的小數(shù)點(diǎn)

大多數(shù)現(xiàn)代貨幣額都是以小數(shù)形式出現(xiàn),或根本沒有子單位。這意味著當(dāng)貨幣有子單位時(shí),主單位中這些單位的數(shù)量是10的冪。例如,一美元有100美分——10的2次冪。

使用十進(jìn)制系統(tǒng)具有優(yōu)勢,但在編程方面有一個(gè)問題。計(jì)算機(jī)使用二進(jìn)制系統(tǒng),因此它們不能原生地表示十進(jìn)制數(shù)。有些語言提出了自己的解決方案,如Java中的BigDecimal類型或C#中的小數(shù)類型。JavaScript只有Number類型,可以用作整數(shù)或雙精度浮點(diǎn)數(shù)。因?yàn)樗腔A(chǔ)10系統(tǒng)的二進(jìn)制表示,所以當(dāng)你嘗試進(jìn)行數(shù)學(xué)運(yùn)算時(shí),最終會得到不準(zhǔn)確的結(jié)果。

使用浮點(diǎn)來存儲貨幣價(jià)值是一個(gè)壞主意。

當(dāng)你計(jì)算更多值時(shí),難以察覺的精度誤差會導(dǎo)致更大的差異。這不可避免地導(dǎo)致最終的四舍五入問題。

陷阱#3:百分比與分配

編程人員應(yīng)該怎么辦?

幸運(yùn)的是,軟件工程師Martin Fowler提出了一個(gè)解決方案。在企業(yè)應(yīng)用程序架構(gòu)模式中,他描述了貨幣價(jià)值的模式:

屬性

方法

數(shù)學(xué):加,減,乘,除

比較:等于,大于,大于或等于,小于,小于或等于。

由此,你可以創(chuàng)建滿足大部分貨幣需求的價(jià)值對象。

“金額+貨幣”作為數(shù)據(jù)結(jié)構(gòu)

金錢的行為與簡單的數(shù)字不同,因此應(yīng)區(qū)別對待。***個(gè)也是最重要的是:它應(yīng)該始終由金額和貨幣組成。

你可以將貨幣金額一起添加,檢查它們的值是否相對應(yīng),并將它們格式化為你需要的任何內(nèi)容。這可以通過對象的方法完成。在JavaScript中,任何返回對象的函數(shù)都可以解決問題。

以分計(jì)額

有幾種方法可以解決JavaScript中的浮點(diǎn)問題。

你可以使用像Decimal.js這樣的庫來將浮點(diǎn)數(shù)作為字符串。這不是一個(gè)糟糕的解決方案,當(dāng)你必須處理大數(shù)字時(shí),它會派上用場。然而,它以增重依賴性為代價(jià),導(dǎo)致性能降低。

你可以在計(jì)算之前將浮點(diǎn)數(shù)乘以整數(shù),然后將它們分開。

 

這是一個(gè)很好的解決方案,但需要在對象構(gòu)造或每次操作時(shí)進(jìn)行額外的計(jì)算。這不一定會影響性能,但仍然需要更多的流程工作。

第三種方法是直接以美分為單位存儲相對于單位的值。如果你需要存儲10美分,則不會存儲0.1,而是10.這允許你僅使用整數(shù),這意味著安全計(jì)算(直到你遇到大數(shù)字)和出色的性能。

Dinero.js:一個(gè)用于創(chuàng)建、計(jì)算和格式貨幣價(jià)值的不可變庫

從以上觀察中,我創(chuàng)建了一個(gè)JavaScript庫:Dinero.js。

 

Dinero.js遵循Fowler的模式更多一點(diǎn)兒。它允許你在JavaScript中創(chuàng)建、計(jì)算和格式化貨幣值。你可以進(jìn)行數(shù)學(xué)運(yùn)算、解析和格式化對象,甚至向他們提問,使你的開發(fā)過程更加輕松。

該庫設(shè)計(jì)為不可變和可鏈接的模式。它支持全局設(shè)置,具有擴(kuò)展格式選項(xiàng),并提供本機(jī)國際化支持。

為什么不可變?

不可變庫更安全,更好預(yù)測。可變操作和引用副本是許多錯(cuò)誤的來源。選擇不變性能夠避免了這些錯(cuò)誤。

使用Dinero.js,你可以執(zhí)行計(jì)算而無需擔(dān)心更改原始用例。在以下Vue.js示例中,調(diào)用priceWithTax時(shí)不會更改Price。如果用例是可變的,它將會更改價(jià)格。

 

可鏈接性

優(yōu)秀的開發(fā)人員努力使他們的代碼更簡潔,更易于閱讀。當(dāng)你想要在單個(gè)對象上連續(xù)執(zhí)行多個(gè)操作時(shí),鏈接提供了優(yōu)雅的符號和簡潔的語法。

 

全球設(shè)置

當(dāng)你處理大量貨幣價(jià)值時(shí),你可能希望其中一些人分享一些屬性。如果你使用德語制作網(wǎng)站,你可能希望以德國貨幣格式顯示金額。

這是全球設(shè)置派上用場的地方。你可以聲明將應(yīng)用于所有新對象的選項(xiàng),而不是將它們傳遞給每個(gè)用例。

 

原生國際化支持

傳統(tǒng)意義上,庫使用區(qū)域設(shè)置文件進(jìn)行國際化。

 

區(qū)域設(shè)置文件也很難維護(hù)。 Internationalization API是原生的,并且得到了很不錯(cuò)的支持。除非你必須使用過時(shí)的或不知名的瀏覽器,否則toFormat可以安全使用。

形成格式

對象很適合存儲數(shù)據(jù),但在顯示數(shù)據(jù)時(shí)卻沒那么有用。Dinero.js提供了各種格式化方法,包括toFormat。它為Number.prototype.toLocaleString提供了直觀而簡潔的語法。將它與setLocale配對,你將能夠以任何語言將任何Dinero對象顯示為正確的格式。這對多語言電子商務(wù)網(wǎng)站特別有用。

接下來做什么?

大家廣泛認(rèn)同F(xiàn)owler模式是一個(gè)不錯(cuò)的解決方案。它激發(fā)了許多語言的同步實(shí)現(xiàn)。如果你正在DIY,我推薦它和本文的觀察結(jié)果作為起點(diǎn)。或者你可以選擇Dinero.js:一種現(xiàn)代,可靠,經(jīng)過全面測試的解決方案,已經(jīng)可以使用。

本文譯自Medium上Sarah Dayan的博文:https://medium.freecodecamp.org/how-to-handle-monetary-values-in-javascript-3fef5eeb3eda

【本文是51CTO專欄作者數(shù)據(jù)星河的原創(chuàng)文章,作者微信公眾號數(shù)據(jù)星河(ID:BDG-store)】

 

戳這里,看該作者更多好文

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-10-26 08:43:18

JavaScript內(nèi)存處理

2023-03-09 12:21:38

2011-04-11 17:10:16

Oracle

2019-11-08 08:00:00

ASP .NETASP .NET Cocookie

2021-08-18 08:20:14

SQL除數(shù)統(tǒng)計(jì)

2012-07-30 09:35:10

項(xiàng)目管理

2019-08-15 10:20:19

云計(jì)算技術(shù)安全

2021-03-24 10:40:26

Python垃圾語言

2025-02-21 15:43:29

slotredis集群

2011-01-21 16:27:43

NagiosSendmail

2012-12-12 09:49:41

2020-12-29 09:11:33

LinuxLinux內(nèi)核

2017-03-13 13:21:34

Git處理大倉庫

2019-09-11 09:21:54

Facebook法定貨幣比特幣

2011-12-15 12:32:19

JavaNIO

2019-12-23 10:20:12

Web圖片優(yōu)化前端

2021-03-01 07:31:53

消息支付高可用

2012-08-29 10:12:13

人才創(chuàng)業(yè)硅谷

2023-04-06 15:19:51

2014-11-10 10:52:33

Go語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

成人欧美一区二区三区小说 | 日韩一区二区在线视频| 三上悠亚av一区二区三区| a视频在线免费看| 成人av在线网站| 国产精品福利小视频| 欧美成人精品欧美一| 奇米狠狠一区二区三区| 在线成人高清不卡| 久久视频这里有精品| 国产高清av在线| 成人av网站在线观看免费| 国产精品成人av在线| 久久久久久久久久综合| 色乱码一区二区三区网站| 欧美成人精精品一区二区频| 欧美日韩在线免费播放| 欧美videossex另类| 中文字幕不卡的av| 久久99久久精品国产| av中文字幕播放| 日韩影院在线观看| 海角国产乱辈乱精品视频| 国产综合精品久久久久成人av| 国产精品一区二区中文字幕| 欧美性xxxxxxxx| 日韩免费一级视频| 尤物yw193can在线观看| 日韩一区欧美一区| 亚洲精品国产系列| 九色蝌蚪在线| 91丨porny丨户外露出| 都市激情久久久久久久久久久| 中文字幕av久久爽| 国产精品入口66mio| 欧美激情在线观看| 国产97免费视频| 91成人看片| 最近2019年好看中文字幕视频| 波多野结衣影院| 草莓视频一区二区三区| 欧美一区二区精美| 久久婷婷中文字幕| 亚洲精品一区av| 欧美人体做爰大胆视频| 亚洲77777| 久久精品女同亚洲女同13| 精国产品一区二区三区a片| 精品国产91乱码一区二区三区四区 | 超碰av在线免费观看| 人人草在线视频| 午夜视频久久久久久| 日韩激情视频一区二区| 免费网站在线观看人| 亚洲欧美国产毛片在线| 青青草原国产免费| 免费a级人成a大片在线观看| 国产精品免费视频一区| 亚洲精品一区二区三区樱花| 一级毛片视频在线| 中文字幕一区在线观看| www.午夜色| av在线免费播放| 亚洲精品老司机| 国产欧美123| 678在线观看视频| 精品久久久久久亚洲国产300| 久久亚洲中文字幕无码| 一级毛片久久久| 91福利小视频| 午夜xxxxx| 91麻豆精品国产91久久久久推荐资源| 精品免费日韩av| 极品粉嫩小仙女高潮喷水久久| 美女少妇全过程你懂的久久| 国产亚洲a∨片在线观看| 极品久久久久久久| 91成人观看| 91精品国产高清久久久久久91 | 欧美h片在线观看| 欧美在线精品一区| 91精品国产乱码久久久久久蜜臀| 青青草免费观看视频| 日本亚洲最大的色成网站www| 91精品久久久久久久久不口人 | 亚洲色图18p| 一级免费黄色录像| 欧美特黄a级高清免费大片a级| 国产综合在线视频| 波多野结衣在线观看视频| 麻豆成人久久精品二区三区红 | 朝桐光av在线一区二区三区| 99久久精品国产麻豆演员表| 欧美一区二区三区成人久久片| 午夜看片在线免费| 亚洲成人动漫在线观看| 国产精品亚洲二区在线观看| 香蕉久久久久久| 亚洲国产精品久久91精品| 成人性生交大免费看| 一区二区三区在线观看免费| 热re99久久精品国产66热| 伊人亚洲综合网| 99国产精品国产精品久久| 亚洲午夜精品福利| 美女视频在线免费| 欧美肥胖老妇做爰| 久久久精品人妻无码专区| 99久久精品国产亚洲精品| 亲爱的老师9免费观看全集电视剧| 亚洲中文字幕在线一区| 99国产精品一区| 91传媒免费视频| 激情久久一区二区| 亚洲精品二三区| 麻豆影视在线播放| 精品亚洲porn| 色一情一乱一伦一区二区三区| 免费在线看电影| 在线电影院国产精品| av网站免费在线播放| 欧美视频日韩| 91精品视频在线看| 中文字幕在线观看日本| 欧美视频免费在线| 免费黄色a级片| 欧美精品三级| 成人看片人aa| √天堂资源地址在线官网| 欧美特级www| 精品无码人妻少妇久久久久久| 在线中文一区| 亚洲一区二区中文字幕| 日韩大片在线永久免费观看网站| 色综合久久久久久久| 影音先锋黄色资源| 尤物网精品视频| 大波视频国产精品久久| 中文在线手机av| 欧美一区二视频| 肉色超薄丝袜脚交69xx图片| 免费av网站大全久久| 欧美日韩一区综合| 惠美惠精品网| 亚洲欧美变态国产另类| 天天综合网久久综合网| wwwwww.欧美系列| 欧美网站免费观看| 欧美大胆a级| 欧美一区二区三区免费观看| 特黄视频在线观看| 五月天中文字幕一区二区| 人妻互换一二三区激情视频| 国产精品v一区二区三区| 99re在线| а√天堂8资源中文在线| 亚洲电影成人av99爱色| 亚洲国产精一区二区三区性色| 风流少妇一区二区| 可以看毛片的网址| 色爱av综合网| 国产精品久久久av久久久| caoporn国产精品免费视频| 欧美日韩在线一区二区| 亚洲女同二女同志奶水| 韩国欧美国产1区| 亚洲精品天堂成人片av在线播放| 一区中文字幕电影| 97精品在线视频| 国产精品久久久久久久龚玥菲| 欧美日韩一区高清| 少妇人妻丰满做爰xxx| 国产白丝精品91爽爽久久| 自拍日韩亚洲一区在线| 国产一区二区区别| 国产主播在线一区| 白浆视频在线观看| 亚洲人成人99网站| 国产又黄又粗又猛又爽| 亚洲一区二区三区在线看| 欧洲一级黄色片| 美女视频网站黄色亚洲| 精品国产三级a∨在线| 黑人久久a级毛片免费观看| 欧美在线一区二区视频| 久久精品视频免费看| 亚洲国产精品久久久久久| 男人天堂视频在线| 亚洲免费观看高清完整| 亚洲一区二区三区无码久久| 麻豆精品蜜桃视频网站| 黄色成人在线看| 日韩精品欧美| 久久99精品久久久久久三级| 亚洲欧美专区| 欧洲一区二区视频| www在线观看播放免费视频日本| 亚洲激情在线观看| 国产精品高潮呻吟久久久| 图片区小说区国产精品视频| 日韩不卡av在线| 波多野洁衣一区| 国产精品嫩草影院8vv8| 国产手机视频一区二区| 国产一级片91| 日韩精品首页| 欧美成人dvd在线视频| 亚洲欧洲国产精品一区| 国产精品视频99| 色吧亚洲日本| 色综合老司机第九色激情 | 九九热这里只有精品免费看| 日本一二三区在线视频| 日韩精品一区二区在线| 一本色道久久综合无码人妻| 欧美视频在线视频| 清纯粉嫩极品夜夜嗨av| 国产精品女同一区二区三区| 国产精品成人一区二区三区电影毛片| 国产福利一区二区三区视频在线 | 欧美激情免费观看| 麻豆视频在线观看免费| 国产一区av在线| 婷婷亚洲一区二区三区| 亚洲电影在线看| 精品人妻久久久久一区二区三区| 欧美视频精品在线观看| 亚洲视频 欧美视频| 欧美日韩久久久久| 欧美不卡视频在线观看| 亚洲午夜激情av| 免费无码毛片一区二区app| 成人免费在线观看入口| 操她视频在线观看| 国产精品狼人久久影院观看方式| 国产又粗又猛又爽视频| 久久综合久久综合久久| 熟妇高潮精品一区二区三区| gogo大胆日本视频一区| 亚洲婷婷在线观看| 成人黄色777网| 免费不卡的av| 成人国产一区二区三区精品| 亚洲欧美日韩色| 白白色亚洲国产精品| 亚洲国产精品自拍视频| 99国产精品久久久久| 蜜桃精品一区二区| 久久精品视频一区二区三区| 亚洲成人网在线播放| 2017欧美狠狠色| 国产三级av在线播放| 国产日韩精品一区二区浪潮av| 日韩中文字幕电影| 国产午夜精品久久久久久免费视| 91网站免费入口| 中文子幕无线码一区tr| 2014亚洲天堂| 夜夜夜精品看看| 日本少妇吞精囗交| 色狠狠av一区二区三区| 国产裸体美女永久免费无遮挡| 欧美午夜寂寞影院| 国产免费不卡av| 欧美精品一区二区三区很污很色的 | 日韩精品视频免费播放| 欧美日韩综合视频| 中文字幕在线视频第一页| 7777精品伊人久久久大香线蕉经典版下载 | 一区二区三区国产盗摄| 爆乳熟妇一区二区三区霸乳| 久久精品国产网站| av av在线| 国产亚洲精品aa午夜观看| 国产精品1区2区3区4区| 亚洲激情综合网| 日本视频网站在线观看| 欧美高清视频在线高清观看mv色露露十八 | 青青操免费在线视频| 欧美午夜影院一区| 国产人妖一区二区三区| 亚洲黄在线观看| 91在线视频| 九九热这里只有精品免费看| 最近高清中文在线字幕在线观看1| 国产精品久久一区| 亚洲三级av| 午夜精品一区二区在线观看的| 欧美久久综合| 亚洲欧美国产日韩综合| 国产精品亚洲第一区在线暖暖韩国| 中文字幕第3页| 国产精品国产三级国产aⅴ原创| 九九热精彩视频| 欧美视频日韩视频在线观看| 日本美女一级片| 久久久国产影院| 欧美日韩视频网站| 成人综合电影| 国产精品毛片一区二区在线看| 97国产精东麻豆人妻电影| 国内精品伊人久久久久av一坑 | 亚洲成人二区| 苍井空浴缸大战猛男120分钟| 国产精品亚洲一区二区三区妖精| av女人的天堂| 香蕉成人啪国产精品视频综合网 | 亚洲男人第一av| 欧美一区二区三区在线观看 | www.狠狠干| 自拍偷拍亚洲区| 中文字幕在线直播| 国产日韩精品久久| 欧美在线高清| 第一区免费在线观看| 欧美激情综合五月色丁香 | a√中文在线观看| 91九色精品视频| 日韩欧美高清| 成人一区二区三| 久久久久久免费毛片精品| 日本少妇性生活| 欧美videos中文字幕| 动漫一区在线| 成人午夜一级二级三级| 不卡中文一二三区| 欧美日韩亚洲一二三| 91小视频免费观看| 精品国产乱码一区二区| 欧美va天堂va视频va在线| 国产精品剧情一区二区在线观看| 国产精品99久久久久久久久 | 欧美成人第一页| 亚洲福利影视| 中文字幕在线中文字幕日亚韩一区| 青青草精品视频| 国产三级在线观看完整版| 日本韩国欧美国产| 国产尤物视频在线| 亲子乱一区二区三区电影| 亚州综合一区| 无码人妻精品一区二区三区在线| www.日韩在线| www.伊人久久| 亚洲视频在线播放| 日韩伦理三区| 亚洲日本精品国产第一区| 麻豆精品一区二区三区| 国产精品麻豆免费版现看视频| 欧美三级日本三级少妇99| av男人的天堂在线| 91免费福利视频| 午夜久久影院| 亚洲最大的黄色网| 日韩欧美有码在线| 福利片在线看| 成人情趣片在线观看免费| 香蕉久久网站| 97人妻精品一区二区三区免费 | 亚洲自拍偷拍另类| 久久久97精品| www.豆豆成人网.com| 国产精品va无码一区二区| 久久精品一二三| 91精品国产乱码久久久久| 欧美精品性视频| 欧美日韩另类图片| 欧美黄色性生活| 亚洲精品大片www| 四虎永久在线精品免费网址| 日韩av片永久免费网站| 日韩国产一区| 国产伦精品一区二区免费| 色丁香久综合在线久综合在线观看| freemovies性欧美| 成人午夜电影在线播放| 国产精品婷婷| 三上悠亚在线观看视频| 精品久久久久av影院 | 欧美性受xxxx黑人xyx性爽| 成人看av片| 久久免费一区| 国产综合色视频| 精品成人久久久| www.日韩.com| 香蕉久久夜色精品国产更新时间| 中文字幕在线观看日 | 欧美精品久久久久久久免费观看 | 麻豆视频传媒入口| 91麻豆福利精品推荐| 在线观看中文字幕av| 欧美精品久久久久| 日韩精品免费一区二区三区| 午夜免费福利影院| 欧美精品123区| 日韩电影免费观| 精品少妇在线视频| 国产精品久久免费看| 天堂91在线| 99在线看视频|