D3.js d3格式的数字不显示千位分隔符

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],

我有一个简单的JavaScript函数,用于将字符串和货币代码转换为格式化的数字

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