问题
当您计算聚合总数时,值类型为
number
,但输入值
value
类型是
string
.所有对象都继承一个
toLocaleString
方法从
Object.prptotype
,但只有某些其他类型实现或覆盖此方法。请参阅
Object toLocaleString
了解详情。字符串只返回字符串。
console.log("123456.78".toLocaleString()); // "123456.78"
console.log(Number("123456.78").toLocaleString()); // "123,456.78"
解决方案
铸造
价值
在标签格式化程序中,先将数字格式化,以便国际化可以正确格式化它
作为一个数字
.
plotOptions: {
pie: {
customScale: 0.8,
expandOnClick: false,
dataLabels: {
enabled: false
},
donut: {
size: "60%",
labels: {
show: true,
value: {
formatter: function (value) {
return Number(value).toLocaleString(); // <-- Cast to number
}
},
total: {
show: true,
formatter: function (value) {
let total = value.globals.seriesTotals.reduce((a, b) => a + b, 0);
return total.toLocaleString();
}
}
}
}
}
},