D3.js d3格式的数字不显示千位分隔符
我有一个简单的JavaScript函数,用于将字符串和货币代码转换为格式化的数字D3.js d3格式的数字不显示千位分隔符,d3.js,D3.js,我有一个简单的JavaScript函数,用于将字符串和货币代码转换为格式化的数字 import * as d3Format from 'd3-format'; import d3 from 'd3'; export const toCurrency = (number, currencyCode) => { const formatDef = { "decimal": ".", "thousands": ",", "grouping": [3],
import * as d3Format from 'd3-format';
import d3 from 'd3';
export const toCurrency = (number, currencyCode) => {
const formatDef = {
"decimal": ".",
"thousands": ",",
"grouping": [3],
"currency": [convertCodeToSymbol(currencyCode), ""]};
const locale = d3Format.formatLocale(formatDef);
return locale.format("($.2f")(number);
};
const convertCodeToSymbol = (currencyCode) => {
const conversions = {
"USD": "$",
"EUR": "€",
"GBP": "£"
};
return conversions[currencyCode] ? conversions[currencyCode] : currencyCode;
};
它可以工作,但千位分隔符不显示。给定(1999年,美元),则返回“$1999.00”。我仔细检查了文档,但“千”和“分组”属性看起来都正确。我想得到“1999.00美元”
(注意,导入d3行不是必需的,但我包含它只是为了确保我没有丢失库的一部分。我已经用npm安装了d3和d3格式。)通过提供的
数千
属性,您只指定请求格式化时组分隔符的外观。要对格式化输出进行实际分组,需要将逗号(,
)选项包含到提供给以下对象的说明符字符串中:
逗号(,)选项允许使用组分隔符,例如逗号表示千
对于代码,这意味着将说明符字符串更改为
return locale.format("($,.2f")(number);
我们应该做到这一点
这些工作示例显示了不同之处:
console.log(d3.format(“.2f”)(1999));//1999
console.log(d3.format(“,.2f”)(1999));//1999.00