簡體   English   中英

成千上萬個分隔符

[英]Thousand separator on result

該腳本使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);
            }
        }
    });
}

}

有許多庫(包括D3),幫助您的數字格式,但瀏覽器也有一個本地化的一個與貨幣工作,甚至工作在IE11。

 const number = 2350972467; console.log(number.toLocaleString()); console.log(number.toLocaleString(navigator.language, { style: 'currency', currency: 'USD' })); 

嘗試

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

好的,我終於通過反復試驗解決了...這就是我所做的更改...

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM