簡體   English   中英

NumberFormat 返回錯誤的將數字轉換為貨幣的格式

[英]NumberFormat returning wrong format for converting number to currency

代碼:

 let currency = 400023; console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(currency));

預計: 400.023,00 歐元

實際: 400,023.00 歐元

在我在 JS 文檔中找到的示例中,它顯示點被用作千位分隔符和逗號用於美分,但是當我自己使用它時它不起作用。

正如@RobG 指出的,這是您的 JS 實現的問題,它沒有正確支持 Intl 對象。

當前所有的瀏覽器都完全支持 Intl。

如果您在 Node.js 上運行您的代碼,情況會稍微復雜一些。 在 Node.js 13 之前,只有部分支持包括 Intl 在內的國際化 (ICU)。

從 Node.js 13 開始,默認情況下內置了完整的 ICU/國際化支持。 詳情請見:

本質上,您可以運行這段代碼:

 console.log(new Intl.DateTimeFormat('es',{month:'long'}).format(new Date(9E8)));

您的輸出可能是:

  • 錯誤:不支持 ICU - 非常舊的瀏覽器/Node.js
  • 1 月:部分支持 ICU - 舊瀏覽器 / Node.js < 13
  • enero:完全支持 ICU - 最近的瀏覽器 / Node.js >= 13

如果您堅持使用 Node.js < 13,您可以使用https://www.npmjs.com/package/full-icu回填完整的 ICU 支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM