簡體   English   中英

將數字轉換為所需的貨幣格式

[英]converting the number to the required currency format

將數字自定義為貨幣格式。 請參閱下面的代碼段。 但是當傳遞負數時,我需要自定義它。

 function getMoneyValue(number) { var formatter = new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }); return formatter.format(number) } console.log(getMoneyValue(200)) console.log(getMoneyValue(-200)) // expected [-] ₹200.00

因此,對於自定義引用Intl.NumberFormat當我嘗試這個片段時,問題是我沒有得到盧比符號

 function getMoneyValue(number) { var formatter = new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }); let parts = formatter.formatToParts(number).map((part) => { switch (part.type) { case "currency": return number >= 0? number: `[-] ${Math.abs(number)}`; default: return part.value; } }); return parts[1]; } console.log(getMoneyValue(200)) // expected ₹200.00 console.log(getMoneyValue(-200)) // expected [-] ₹200.00

任何幫助表示贊賞,實現這一目標的更好方法是什么

 function getMoneyValue(number) { var formatter = new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }); if(number < 0) { return '[-] '+ formatter.format(Math.abs(number)) } return formatter.format(number) } console.log(getMoneyValue(200)) console.log(getMoneyValue(-200))

檢查應該針對類型減號 您不需要在 integer 類型下添加檢查,因為只有 integer 類型在沒有-ve 符號的情況下通過,它是一個正 integer 值。

 function getMoneyValue(number) { var formatter = new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }); let parts = formatter.formatToParts(number).map(({type, value}) => { switch (type) { case "integer": return value; case "minusSign": return '[-]' default: return value; } }).reduce((string, part) => string + part); return parts; } console.log(getMoneyValue(200)) console.log(getMoneyValue(-200))

暫無
暫無

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

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