Все, что вам нужно, это d3.formatPrefix
, который ...
Преобразование значений в единицы соответствующего префикса 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>