我在一条线上有数据点,当光标经过它们时,会出现一个工具提示 div,其中包含有关该点的数据。div的html代码如下。
div.html("The Avengers Box Office: $" + d.Avengers)
d.Avengers 将 207438708 作为字符串返回。那么有没有办法在 d3.js 中为大数添加逗号?
我的值从数千到数亿不等,阅读它们可能会很棘手。
谢谢
我在一条线上有数据点,当光标经过它们时,会出现一个工具提示 div,其中包含有关该点的数据。div的html代码如下。
div.html("The Avengers Box Office: $" + d.Avengers)
d.Avengers 将 207438708 作为字符串返回。那么有没有办法在 d3.js 中为大数添加逗号?
我的值从数千到数亿不等,阅读它们可能会很棘手。
谢谢
解决方案:您不能使用 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() )
高级解决方案:如果您的主要问题是数字太大(即使使用逗号),您需要为您的数字编写一些非常酷的转换函数
查看一个相关的答案,我在其中添加了一些代码来执行此操作,将大数字转换为“kilo”、“mega”、“giga”和“terra”。你可能想采用它。
谢谢大家的回复。我在这里找到了答案。它不是添加逗号,而是在数百万或数千之后添加 M 或 K。我认为这实际上更好。
https://groups.google.com/forum/?fromgroups=#!topic/d3-js/YFsSmzu4JZk
d3.format(',')(1999222) //// 输出=1,999,222