var format = d3.format('s');
format(1000); // 1k, good
format(1000000); //1M, good
format(0.1); // 100m, not necessary, would be better to show 0.1 directly
我认为大多数时候SI前缀是' m'没有必要。我该如何禁用它?
答案 0 :(得分:1)
没有内置的方法可以按照您想要的方式自定义d3.format()
的输出。但是,您可以定义两种不同的格式:一种用于包含SI前缀的大数字,而另一种用于小数字将省略前缀。将这些包装在函数中将为您提供自定义格式函数:
var formatLarge = d3.format('s');
var formatSmall = d3.format('-.g');
var customFormat = function(val) {
return Math.abs(val) < 1 ? formatSmall(val) : formatLarge(val);
};
console.log(customFormat(1000)); // 1k
console.log(customFormat(1000000)); // 1M
console.log(customFormat(0.1)); // 0.1