我可以使用1,500,000
将1.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.0M
和10.0M
?
答案 0 :(得分:2)
第一种不可能直接用D3。 SI前缀的想法是,您始终在该点前面具有非零值。同样,你要求的第二件事也是不可能的,因为精确度(格式中点之后的数字)在使用SI格式时没有效果。
在你的情况下,最简单的事情就是手动创建一个数百万格式化程序,即将所有数字除以一百万,并在最后添加“M”。这样就可以使用其他格式化程序来指定精度。
您可能还会发现d3.formatPrefix()
function有用,它会为您提供给定数字的SI前缀。