如何用SI前缀控制d3.format?

时间:2014-06-19 18:15:00

标签: d3.js

我可以使用1,500,0001.5M显示为d3.format(".2s")(1500000),但如何将500,000显示为.5M

使用d3.format(".2s")(500000)会产生500k

此外,d3.format(".2s")(5000000)会产生5.0M,但d3.format(".2s")(10000000)会产生10M。是否有我可以指定的格式来同时获取5.0M10.0M

1 个答案:

答案 0 :(得分:2)

第一种不可能直接用D3。 SI前缀的想法是,您始终在该点前面具有非零值。同样,你要求的第二件事也是不可能的,因为精确度(格式中点之后的数字)在使用SI格式时没有效果。

在你的情况下,最简单的事情就是手动创建一个数百万格式化程序,即将所有数字除以一百万,并在最后添加“M”。这样就可以使用其他格式化程序来指定精度。

您可能还会发现d3.formatPrefix() function有用,它会为您提供给定数字的SI前缀。