简体   繁体   English

将数字转换为所需的货币格式

[英]converting the number to the required currency format

Customising the number to a currency format.将数字自定义为货币格式。 See the below snippet.请参阅下面的代码段。 But when passing negative number i need to customise it.但是当传递负数时,我需要自定义它。

 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

So for customising referring Intl.NumberFormat When i tried this snippet the problem is i am not getting the rupee symbol因此,对于自定义引用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

Any help is appreciated, what is the better way to achieve this任何帮助表示赞赏,实现这一目标的更好方法是什么

 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))

The check should have been against the type minusSign .检查应该针对类型减号 You don't need to add a check under integer type as only integer type is passed without the -ve sign which be a positive integer value.您不需要在 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