结果上千位分隔符

时间:2018-03-26 13:37:08

标签: javascript chart.js2

此脚本使Chart.js将数据添加到图形中,以便它在条形图上显示数据,但我想添加千位分隔符和货币符号。我已经使用了货币符号,但我不确定如何获得千位分隔符。

animation: {
onComplete: function () {
    var ctx = this.chart.ctx;
    ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontFamily, 'normal', Chart.defaults.global.defaultFontFamily);
    ctx.fillStyle = "black";
    ctx.textAlign = 'center';
    ctx.textBaseline = 'bottom';

    this.data.datasets.forEach(function (dataset)
    {
        for (var i = 0; i < dataset.data.length; i++) {
            for(var key in dataset._meta)
            {
                var model = dataset._meta[key].data[i]._model;
                ctx.fillText("$ " + dataset.data[i], model.x, model.y - 5);
            }
        }
    });
}

}

3 个答案:

答案 0 :(得分:0)

有许多图书馆(包括d3)可以帮助您格式化数字,但浏览器还有一个本地化的one可以使用货币,甚至适用于IE11。

&#13;
&#13;
const number = 2350972467;

console.log(number.toLocaleString());

console.log(number.toLocaleString(navigator.language, { style: 'currency', currency: 'USD' }));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试

var val = dataset.data[i].toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
ctx.fillText("$ " + val, model.x, model.y - 5)

答案 2 :(得分:0)

好的,我终于通过反复试验解决了......这就是我改变了......

var model = dataset._meta[key].data[i]._model;
var salestotal = dataset.data[i];
if(parseInt(salestotal) >= 1000){
   salestotal2 = salestotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
  salestotal2 = salestotal;
}
ctx.fillText("$ " + salestotal2, model.x, model.y - 5);