我使用chartjs-永久显示每个图表数据集之上的数据标记。我在每个图表脚本中使用以下代码以美元显示货币金额:
plugins: {
datalabels: {
formatter: function(value, context) {
return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
}
}然后输出到:$#、###、###。
为了节省空间,我如何重写这段代码,以一种缩写的方式显示上述数量:$#.#m。第一个逗号变成小数点,其余的整数被舍入。
因此,数十亿人将拥有一个B,数百万人将拥有一个M,数千人将拥有一个K,等等.
示例:
10,500,000,000->105亿美元
1,500,000,000 --> 15亿美元
$10,500,00 ->1,050万美元
150万->150万美元
$10,500 ->$1050万
$1,500 ->$150万
.replace()部分的细分也将不胜感激。
发布于 2018-06-28 17:31:04
我在这里找到了答案:
https://stackoverflow.com/a/14994860/7811137
function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}https://stackoverflow.com/questions/51072391
复制相似问题