我在一条线上有数据点,当光标经过它们时,会出现一个工具提示div,其中包含有关该点的数据。 div的html代码如下。
div.html("The Avengers Box Office: $" + d.Avengers)
d.Avengers以字符串形式返回207438708。那么有没有办法在d3.js中为大数字添加逗号?
我的价值从数千到数亿不等,阅读起来可能很棘手。
由于
答案 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() )
高级解决方案:如果您的主要问题是数字太大(即使使用逗号),您需要为您的数字编写一些非常酷的转换函数
以某种方式检查related answer我添加了一些代码来执行此操作,将大数字转换为“kilo”,“mega”,“giga”和“terra”。你可能想采用它。
答案 2 :(得分:-1)
d3.format(',')(1999222)////输出= 1,999,222