我从d3版本3转换为版本4.我不会'了解如何解决问题。通过更改格式'
引入第3版
d3.format('s')(14000) //14K
d3.format('s')(4000) //4K
d3.format('s')(4000.10) //"4.0001k"
第4版
d3.format('s')(14000) //14.0000k
d3.format('s')(4000) //4.0000k
d3.format('s')(4000.10) //"4.0001k"
这也表现得很奇怪(猜测显着的数字变化)
d3.format('.0s')(14000) //"10k"
我想显示零小数和K,如果成千上万。
注意:formatting a number with SI prefix change in version 4没有回答关于我现在可以做同样事情的问题。
答案 0 :(得分:1)
您正在寻找带有两位有效数字的SI前缀,该说明符将是:
d3.format(".2s")(14000)
"14k"
怎么样:
var v = 14000;
console.log(d3.format("."+ v.toString().match(/[1-9]/g).length +"s")(v));
var v = 4000;
console.log(d3.format("."+ v.toString().match(/[1-9]/g).length +"s")(v));
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
答案 1 :(得分:0)