Переменная точность в d3.format

Я использую d3.format ("s" )с d3.svg.axis.tickFormat, чтобы красиво отформатировать метки делений в единицах СИ (из Международной системы единиц ). По большей части он прекрасно работает, за исключением некоторых значений, которые сталкиваются с ошибкой округления и возвращают массу знаков после запятой (1400, например, как 1400 *0,001 = 1,40000000000000001 ).

Чтобы обойти это, я могу указать точность, такую ​​как d3.format (".2s" ), но это заставляет использовать 2 значащие цифры в тех случаях, когда 1 было бы лучше. Например, если у меня есть тики [5000, 10000, 15000], я бы сейчас увидел [5,0k, 10k, 15k]. Первоначально, когда я вообще не указывал точность, я получал [5k, 10k, 15k].

Мне интересно, можно ли указать максимальную точность, чтобы она применялась только тогда, когда количество значащих цифр превышает указанное число? Таким образом, 5000 будет 5к, а не 5,0к.

9
задан paxRoman 15 September 2012 в 15:01
поделиться