繁体   English   中英

Numeral.js - 不支持英镑吗?

[英]Numeral.js - is there no support of pound sterling?

我正在尝试使用 moment JS 格式化货币值的输出,并使用他们网站上的示例'$ 0,0[.]00'并为英镑编辑它'£ 0,0[.]00'仅输出值,而不是英镑符号。

数字不支持美元以外的货币吗?

我正在使用的代码是:

numeral(200).format('£ 0,0[.]00')

导入区域设置,然后手动设置。

import numeral from 'numeral';
import 'numeral/locales/en-gb';

numeral.locale('en-gb');

numeral('1234.56').format('$0,0.00'); // £1,234.56

未缩小代码的第 67 和 68 行有:

// figure out what kind of format we are dealing with
if (format.indexOf('$') > -1) { // currency!!!!!

所以是的,似乎“$”是唯一公认的货币符号。 您可以单独添加货币符号,例如:

var amount = '£' + numeral(2456.01231).format('0,0[.]00');

console.log(amount); // £2,456.01

或扩展库以处理其他货币符号。

使用 ISO 符号 GBP 可能更好,这并不含糊。 有许多货币使用 £ 符号,因为有许多货币使用 $。

记住这最初是在两年前回答的,我想提供一个替代答案。 Numeral 现在支持locales ,这意味着您可以选择不同的货币格式。

我在我的代码库中所做的是:

  1. 导入数字并需要 GB 语言环境
  2. 使用 GB 语言环境定义默认格式
  3. 使用numeral(value).format()应用我刚刚定义的默认格式

这是它的样子:

import * as numeral from 'numeral';
require('numeral/locales/en-gb');

numeral.locale('en-gb');
numeral.defaultFormat('$0,0.00');

numeral(200).format(); // £200.00
numeral(1234).format(); // £1,234.00
numeral(5431.31).format(); // £5,431.31

注意:在指定numeral.defaultFormat('$0,0.00')您仍然需要使用美元符号。 但是,由于 GB 语言环境,数字实际上会呈现一个£ 使用'£0,0.00'作为格式实际上不会呈现任何货币符号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM