精品欧美一区二区三区在线观看 _久久久久国色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手机版| 黄在线观看免费网站ktv| 国产视频一区不卡| 亚洲中国色老太| 韩国av中文字幕| 久久免费精品视频在这里| 日韩一区二区三区在线| 免费黄色福利视频| 成人日批视频| 久久先锋影音av鲁色资源网| 91精品综合视频| www.中文字幕在线观看| 香港欧美日韩三级黄色一级电影网站| 亚洲国产高清福利视频| www.se五月| 在线播放高清视频www| 成人欧美一区二区三区白人 | 久久久久97国产| 亚洲第一福利社区| 欧美一级理论性理论a| 国产男女在线观看| 欧美色图天堂| 国产精品国产三级国产专播品爱网| 国产另类自拍| 国产女人18毛片水真多| 日韩av不卡在线观看| 午夜精品一区二区三区在线视 | 国产综合欧美| 日韩三级成人av网| 中文字幕成人动漫| 国产欧美自拍一区| 欧美大片免费久久精品三p| 日本激情视频在线播放| 亚洲国产欧美日本视频| 亚洲18色成人| 日韩精品综合在线| www在线观看播放免费视频日本| 久久久99久久精品欧美| 久久99精品久久久久久水蜜桃 | 亚洲国内在线| 国产资源在线观看| 91蜜桃在线免费视频| 99超碰麻豆| 精品人妻少妇AV无码专区| 久草在线在线精品观看| 国产精品日韩久久久久| 波多野结衣大片| 日韩精品久久久久久| 日本欧美精品在线| 亚洲精品男人的天堂| 欧美一级视频| 日本高清+成人网在线观看| 精品国产免费观看| 国产精品美女久久久浪潮软件| 久久久亚洲影院| 国产在线免费视频| 亚洲高清自拍| 97国产精品视频人人做人人爱| 国产大片aaa| 一本色道久久精品| 日本精品免费观看| 夜夜躁日日躁狠狠久久av| 青青草一区二区三区| 国产日韩精品视频| 99热这里只有精| 国产高清精品在线| 精品久久sese| 国产日产精品久久久久久婷婷| 国产蜜臀av在线一区二区三区 | 亚洲国产欧美国产综合一区| 国外色69视频在线观看| av一级在线观看| 毛片av一区二区| 成人免费在线网址| 成人久久久精品国产乱码一区二区 | 人人爽久久涩噜噜噜网站| 久久久久99精品成人片我成大片 | 免费在线视频一级不卡| 国产精品久久久久久久岛一牛影视 | 亚洲成av人片一区二区梦乃| 亚洲熟妇av一区二区三区| 成人mm视频在线观看| 91精品国产综合久久久蜜臀粉嫩 | 日本欧美韩国国产| 亚洲性xxxx| 91传媒免费观看| 精品白丝av| 国产精品青青在线观看爽香蕉 | 久久先锋资源网| 亚洲永久一区二区三区在线| 免费毛片在线看片免费丝瓜视频| 狠狠躁夜夜躁人人爽超碰91| 韩国视频一区二区三区| 午夜久久av| 一级做a爰片久久毛片美女图片| 999精品久久久| 极品少妇一区二区三区| 国产精品嫩草视频| 人妻91麻豆一区二区三区| 国产日韩精品久久久| 国产九色porny| 国产精品美女午夜爽爽| 亚洲精品97久久| 成年人网站在线观看视频| 日韩视频中文| 欧美xxxxxx| 国产精品久久久久久久久免费桃花 | 夜夜嗨av一区二区三区网页| 91av俱乐部| 91在线一区| www.亚洲一区| 中文人妻av久久人妻18| 国产盗摄女厕一区二区三区| 秋霞毛片久久久久久久久| 日韩影视在线| 欧美四级电影网| jizz日本免费| 在线播放日韩| av成人免费观看| 免费高清完整在线观看| 日本道色综合久久| 少妇被狂c下部羞羞漫画| 99精品小视频| 国产精品扒开腿做爽爽爽视频 | 成人av在线播放网址| 一区精品在线| 久久久成人av毛片免费观看| 亚洲成人av中文字幕| 欧美卡一卡二卡三| 极品少妇xxxx精品少妇偷拍 | 在线毛片网站| 日本黄色一区二区| 波多野结衣办公室33分钟| 亚洲大胆av| 国产免费一区| 国产精品原创| 日韩电影免费观看在线观看| 久久精品国产亚洲AV无码麻豆 | 插吧插吧综合网| 国产日韩欧美高清免费| 久久精品国产理论片免费| 国产99re66在线视频| 精品少妇一区二区三区视频免付费| 国产探花在线视频| 国产在线精品一区二区三区不卡 | 超碰人人在线| 在线综合视频播放| 亚洲不卡在线播放| 国产美女久久久久| 精品嫩模一区二区三区| 日韩在线视频一区二区三区| 欧美成人精品h版在线观看| av网站在线免费看| 亚洲一区视频在线| 在线免费观看a级片| 香蕉久久夜色精品| 日韩精品久久久毛片一区二区| 久久精品女人天堂av免费观看| 亚洲人成在线观看| 中文字幕观看视频| 亚洲婷婷综合色高清在线| 亚洲精品国产久| 国产精品av久久久久久麻豆网| 国产69精品久久久久9999apgf | 精品欧美不卡一区二区在线观看| 色综合激情久久| 亚洲天堂精品一区| 国产一区二区三区不卡在线观看| 老司机激情视频| 欧美电影在线观看完整版| 国产精品www网站| 麻豆传媒视频在线| 亚洲高清色综合| 老熟妇一区二区三区| 国产精品久久久久7777按摩| 久久久精品人妻一区二区三区| 制服诱惑一区二区| 亚洲不卡1区| 9999精品| 欧美在线影院在线视频| 中文日本在线观看| 欧美mv日韩mv| 最近中文字幕在线视频| 亚洲黄网站在线观看| 久久久久久久久免费看无码| 蜜桃精品视频在线观看| 免费视频爱爱太爽了| 精品国产乱码久久久久久1区2匹| 国产精品一区二区三区免费视频| 日本电影在线观看| 国产一区二区欧美日韩| 午夜精品一二三区| 欧美日韩一区二区三区在线| 久久久久亚洲av无码专区| 国产欧美一区二区精品性色 | 国产偷国产偷亚洲高清人白洁| 在线不卡一区二区三区| 99国产精品99久久久久久粉嫩| 亚洲高清精品中出| 欧美久久精品| 亚洲一区二区三| 日韩天堂在线| 97视频网站入口| 成人av黄色| 中文字幕亚洲精品| 午夜在线观看视频18| 91精品在线免费观看| 无码人妻精品一区二区50| 亚洲综合激情小说| 美国黄色片视频| 久久久精品国产99久久精品芒果| 亚洲欧洲国产视频| 久88久久88久久久| 日韩视频免费在线播放| 亚洲三级观看| 乱熟女高潮一区二区在线| 91亚洲国产| 相泽南亚洲一区二区在线播放 | youjizz.com亚洲| 国产尤物久久久| 久久精品中文字幕一区二区三区| 北条麻妃一区二区三区在线| 91在线网站视频| 日韩国产一二三区| 国产精品久久久999| 国产精品粉嫩| 欧美在线视频观看免费网站| 桃色av一区二区| 午夜精品理论片| sm久久捆绑调教精品一区| 欧美精品久久久久久久久久| 性欧美高清come| 欧美大片第1页| 最新日本在线观看| 久久99久久亚洲国产| 成人毛片av在线| 久久久97精品| yellow91字幕网在线| 麻豆乱码国产一区二区三区| 黄a在线观看| 欧美美最猛性xxxxxx| 国产在线看片| 欧美国产视频日韩| 欧美xxxx免费虐| 欧美精品久久久久久久| 国产高清中文字幕在线| 欧美在线www| 久久久久久久| 国产精品美女www| 欧美天堂一区二区| 成人亚洲欧美一区二区三区| 欧美片网站免费| 国产69精品久久久久9999apgf| 久久久免费毛片| 久久综合九色综合久99| 久久不见久久见国语| 台湾成人av| 91av精品| 777777av| 免费观看在线色综合| 999久久久精品视频| 国产福利91精品一区二区三区| 午夜剧场免费看| 国产婷婷色一区二区三区四区| 欧美亚洲色综久久精品国产| 亚洲丝袜制服诱惑| 日韩av在线天堂| 一本一本久久a久久精品综合麻豆| 99re国产在线| 日韩欧美色综合| 亚洲一区国产精品| 亚洲黑人在线| 成人在线看片| 国产成人久久| 精品少妇人妻av一区二区| 黄色精品一区| 国产又大又硬又粗| 久久99热99| 污污内射在线观看一区二区少妇| 久久久精品tv| 成人观看免费视频| 日本韩国视频一区二区| 国产av无码专区亚洲av| 日韩精品极品毛片系列视频| 日本在线看片免费人成视1000| 欧美另类极品videosbest最新版本| 日韩理论视频| 91精品国产99久久久久久红楼| 全球av集中精品导航福利| 尤物一区二区三区| 一区二区福利| 亚洲成人av免费观看| 久久久精品tv| 日韩av在线播| 日韩一区二区三区精品视频| 男女污视频在线观看| 欧美精品www| 欧美性生活一级| 欧美大香线蕉线伊人久久国产精品| 91精品99| 三年中国国语在线播放免费| 成人精品一区二区三区中文字幕| 美国黑人一级大黄| 精品久久久久久久久久国产| 国产露脸无套对白在线播放| 国产一区二区三区丝袜| 欧美xxxxhdvideosex| 91精品久久久久久久久青青 | 国产极品久久久久久久久波多结野| 国产精品亚洲不卡a| 五月激情久久久| 日韩精品你懂的| 91日韩精品一区| 久青草免费视频| 91精品国产免费| 日本中文字幕在线观看| 日韩美女在线播放| 欧美巨大xxxx| 欧美不卡在线播放| 国产精品99久久久久| 精品国产精品国产精品| 欧美三级日韩三级| 国产有码在线| 欧洲成人午夜免费大片| 啪啪激情综合网| 男女猛烈激情xx00免费视频| 国产成人精品综合在线观看| 天海翼在线视频| 欧美挠脚心视频网站| h网站在线免费观看| 国产精品户外野外| 国产麻豆精品久久| 日本久久久精品视频| 91亚洲精品久久久蜜桃网站| 国产又色又爽又黄的| 欧美精品一区二区高清在线观看| 色老头在线观看| 波多野结衣一区二区三区在线观看| 你懂的视频一区二区| 国产黄色一区二区三区| 亚洲精品日韩一| 精品人妻一区二区三区蜜桃 | 小早川怜子影音先锋在线观看| 粉嫩精品一区二区三区在线观看| 欧美日韩日本国产亚洲在线| 69久久精品无码一区二区| 一区二区三区中文字幕在线观看| 超碰在线人人干| 久久噜噜噜精品国产亚洲综合| 免费精品一区| 国产精品成人久久电影| 北条麻妃一区二区三区| 国产成人精品一区二三区| 日韩精品高清视频| 亚洲四虎影院| 亚洲精品高清视频| 国模娜娜一区二区三区| 欧美精品一区二区成人| 亚洲电影天堂av| 日韩av中字| 一区二区三区免费看| 国产一区不卡精品| 日本一级淫片免费放| 亚洲精品中文字幕有码专区| 日韩精品三区| 影音先锋男人的网站| 波多野洁衣一区| 中文字幕人妻互换av久久| 久久综合色影院| av综合网址| 亚洲五月天综合| 亚洲欧美日韩国产另类专区| 欧美一区二区三区黄片| 国产成人精品最新| 91精品推荐| 亚洲第一黄色网址| 欧美日韩一区二区三区四区| 日皮视频在线观看| 日产中文字幕在线精品一区| 狠狠色丁香久久婷婷综合_中| 久久久无码精品亚洲国产| 亚洲欧洲中文天堂| 日韩精品视频中文字幕| www国产黄色| 亚洲天堂成人网| 男人久久精品| 91在线短视频| 日韩电影免费在线| 91精品国产高清一区二区三蜜臀| 亚洲免费av片| 欧美经典一区| 亚洲福利精品视频| 偷拍与自拍一区| 免费网站成人| 蜜桃日韩视频| 国产成a人亚洲精| 最近中文在线观看| 69视频在线播放|