Опускание конечных нулей / использование sigfigs с d3.format () - PullRequest
2 голосов
/ 14 января 2020

Я использую d3 косвенно через Plotly, и мне нужно передать строку форматирования для чисел на оси.

Мне трудно заставить эффект, описанный в этом PR, работать. https://github.com/d3/d3-format/pull/57

Синтаксис, описанный в PR, отсутствует в документации https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format

В основном - есть ли способ получить избавиться от этих конечных нулей? Мне нужно правильно отображать произвольно маленькие числа (например, 0,00123), чтобы простое усечение не работало - мне нужен настоящий метод sigfig, который пропускает конечные нули

format = ".5g"
f = d3.format(format);
f(0.00123)           ==> 0.0012300 ☹
f(40)                ==> 40.000  ☹
f(5180.159999999996) ==> 5180.2 ?
f(999999)            ==> 1.0000e+6 ?

trailing zeroes from d3.js

1 Ответ

1 голос
/ 14 января 2020

Вам не хватает флага ('~') в вашем формате, чтобы удалить завершающие нули. Это похоже на работу ...

format = ".5~g"
f = d3.format(format)
console.log(f(0.00123))
console.log(f(40))
console.log(f(5180.159999999996))
console.log(f(999999))
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...