在D3中使用逗号格式化数字

Mat*_*ttD 17 string formatting d3.js

当我使用D3创建图表时,轴标签中包含逗号以划分数千,数百万等.

是否有一个D3函数,我可以调用它传递一个数字并获取一个字符串格式化的逗号,如在轴中使用?这将是本C#的等价物:x.ToString("0,000").

我知道存在这样的格式化库,但我想避免包含其他库.我已经在使用D3了,所以如果有一个API我可以使用它会很棒.

me.*_*me. 14

在d3 v4中更严格地执行了这样做的语法,但看起来像:

format = d3.format(",");
formattedX = format(x);
Run Code Online (Sandbox Code Playgroud)

D3格式化文档

  • 它没有从v3变为v4.v4只是更挑剔抱怨错误的说明符而v3只是继续解释它能够掌握的东西.MattD的自我回答只是忽略了这一点.请参阅我对该答案的评论.启用分组所需的只是`d3.format(",")`.你甚至不需要最后的"d"字符.请相应调整您的答案,也许,添加文档链接以供参考. (4认同)

Mat*_*ttD 13

在文档中快速搜索发现:

format = d3.format("0,000");
formattedX = format(x);
Run Code Online (Sandbox Code Playgroud)

https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format

  • 怎么能得到21个赞成票并成为公认的答案?这是错误的,格式说明符无效.在链接到文档后,可以很容易地看到逗号后面一定不能有数字.它偶然发生,因为字符串中有一个逗号.最终,这是启用分组所需的唯一字符. (11认同)

eri*_*oco 7

为了避免阅读@altocumulus的评论,这是正确的答案:

let format = d3.format(','); let formattedX = format(x);

来自文档:

逗号(,)选项允许使用组分隔符,例如数千个逗号.

(@altocumulus得到了所有的功劳.)

  • `var x = d3.format("$,.2f")(myVal); ` 为我的目的工作,https://github.com/d3/d3-format#locale_format 很有帮助。 (2认同)