两组数据是 99.98 和 100.00,柱状图上高度差了一截,看着像差几个点,实际只差 0.02。乍看像缓存或者权限的锅,追下去往往不是。
yAxis: { max: v => Math.ceil(v.max / 10) * 10 },
tooltip: { valueFormatter: v => v.toFixed(2) }
追下去是这么回事:坐标轴按原始小数自动分刻度,两个值刚好跨过一条刻度线,视觉差被放大。tooltip 又默认把完整小数位都显示出来。
「图表数值精度」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
具体做法是,按业务精度统一四舍五入 保留两位;轴刻度最大值向上取整到整十;提示框用 formatter 固定小数位。
验收就看一点,两根柱子高度几乎齐平,提示框里都显示两位小数。
