Charts.js未配置千分位却自动添加逗号,如何全局禁用该功能?
问题特性说明
该现象不是Chart.js的已知bug,是其v3及以上版本内置的默认本地化适配逻辑:会自动读取运行环境的区域语言设置,调用Intl.NumberFormat接口对输出数值做适配格式化,你观察到的千分位逗号是默认适配规则的输出结果。
全局移除千分位分隔符配置方案
你可以通过修改全局默认配置,一次性覆盖所有图表、所有数值展示位置的格式化规则:
- 优先适配法国客户使用习惯,直接指定区域为法国即可:
// 所有图表初始化之前执行该配置 Chart.defaults.locale = 'fr-FR';
该配置下数值会自动使用法国通用格式:千分位用空格分隔、小数点用逗号展示,完全符合你的法国客户的使用习惯。
- 如果你需要完全取消所有千分位分隔符,统一使用
数字.两位小数的固定格式,可配置全局回调:
// 全局配置提示框数值格式 Chart.defaults.plugins.tooltip.callbacks.label = ctx => { const label = ctx.dataset.label ? `${ctx.dataset.label}: ` : ''; return label + ctx.parsed.y.toFixed(2); }; // 全局配置线性坐标轴刻度数值格式 Chart.defaults.scales.linear.ticks.callback = val => val.toFixed(2); // 如果使用了datalabels插件,增加以下全局配置 Chart.defaults.plugins.datalabels.formatter = val => val.toFixed(2);
版本兼容说明
如果你使用的是Chart.js v2版本,将以上配置的路径前缀从Chart.defaults调整为Chart.defaults.global即可生效。
内容的提问来源于stack exchange,提问作者Huqe Dato
相关产品推荐
相关产品推荐

