D3.js 使用SI前缀格式化数字,小数位数固定

D3.js 使用SI前缀格式化数字,小数位数固定,d3.js,D3.js,我正在查看d3.0格式的可用类型 可用的类型值包括: 指数(“e”)-使用Number.toExponential 一般(“g”)-使用Number.toPrecision 固定(“f”)-使用Number.toFixed 整数(“d”)-使用Number.toString,但忽略任何非整数值 四舍五入(“r”)-类似于固定的,但四舍五入到精确的有效数字 百分比(“%”)-类似于固定值,但乘以100,后缀为“%” 四舍五入百分比(“p”)-类似四舍五入,但乘以100,后缀为“%” SI前缀(“s

我正在查看d3.0格式的可用类型

可用的类型值包括:

指数(“e”)-使用Number.toExponential

一般(“g”)-使用Number.toPrecision

固定(“f”)-使用Number.toFixed

整数(“d”)-使用Number.toString,但忽略任何非整数值

四舍五入(“r”)-类似于固定的,但四舍五入到精确的有效数字

百分比(“%”)-类似于固定值,但乘以100,后缀为“%”

四舍五入百分比(“p”)-类似四舍五入,但乘以100,后缀为“%”

SI前缀(“s”)-类似于四舍五入的,但带有单位后缀,如“9.5M”或“1.00µ”

我想要的是一个SI前缀,类似于fixed not rounded。是否存在这样的格式选项

一些例子:

var format = d3.format('.1s');
format(12600000); // Would like 12.6M get 10M
format(12400000); // Would like 12.4M get 10M
format(1240000); // Would like 1.2M get 1M
format(1290000); // Would like 1.3M get 1M

你几乎把它做好了。使用one可以获得SI前缀。为了得到不带小数的整数,我使用了:


您可以自己在尝试。

您只需更改

d3.format('.1s');

console.log(d3.format(“.3s”)(12600000))

知道如何在d3 v4中实现这一点吗?这对我来说是在d3 v4中获得一个带有SI前缀的固定点:
值=238489000;log(d3.formatPrefix('.1f',value)(value))//238.5
d3.format('.1s');
d3.format('.3s');