在我的情况下,举个例子:
d3.format("~s")(656628); //656.628k
但是我期望的结果是: 656.63千
我想使用d3-format选项,而不是手动处理它。
在线测试: https://npm.runkit.com/d3-format
在我的情况下,举个例子:
d3.format("~s")(656628); //656.628k
你所需要的是d3.formatPrefix
,它可以将值转换为适当SI前缀的单位,然后再以定点表示法格式化。
在使用固定点表示法进行格式化之前,将值转换为适当SI前缀的单位,以指定数值作为参考。
..., 使用".2"
作为规范符号和你自己的数字作为值。
这里有一个演示,以你的数字为例:
const myNumber = 656628;
console.log(d3.formatPrefix(".2", myNumber)(myNumber));
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
656.63k
。[1232, 7676546655, 665, 0.0012, 8887878].forEach(function(d) {
console.log("Number: " + d + " - Your format: " + d3.formatPrefix(".2", d)(d))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
d3Format.format("~s")(656628).substring(0, 6) + 'k'
。 - josemartindev只需执行 d3Format.format("~s")(656628).substring(0, 6) + 'k'
这可以手动完成。我认为d3-format支持此操作。 - thienshaman