在d3.js中为大数字添加逗号

时间:2013-03-13 14:06:16

标签: javascript d3.js string-formatting

我在一条线上有数据点,当光标经过它们时,会出现一个工具提示div,其中包含有关该点的数据。 div的html代码如下。

    div.html("The Avengers Box Office: $" + d.Avengers) 

d.Avengers以字符串形式返回207438708。那么有没有办法在d3.js中为大数字添加逗号?

我的价值从数千到数亿不等,阅读起来可能很棘手。

由于

3 个答案:

答案 0 :(得分:2)

感谢回复人员。我在这里找到了答案。它不是添加逗号,而是在数百万或数千之后添加M或K.我觉得哪个更好。

https://groups.google.com/forum/?fromgroups=#!topic/d3-js/YFsSmzu4JZk

答案 1 :(得分:1)

<强>解决方案: 您无法使用d3添加逗号,但可以通过纯JavaScript执行:Number.toLocaleString()

// convert Avengers to a Number and use the toLocaleString on it
div.html("The Avengers Box Office: $" + (1*d.Avengers).toLocaleString() ) 

高级解决方案:如果您的主要问题是数字太大(即使使用逗号),您需要为您的数字编写一些非常酷的转换函数

  1. 计算小数和
  2. 选择一个非常好的格式来显示不错的数字
  3. 以某种方式检查related answer我添加了一些代码来执行此操作,将大数字转换为“kilo”,“mega”,“giga”和“terra”。你可能想采用它。

答案 2 :(得分:-1)

d3.format(',')(1999222)////输出= 1,999,222