F4.18.3consistent fractional digits设计
小数点位数不一致会破坏纵向对齐的比较意图
别名: 小数位对齐 · decimal alignment · 精度不一致
概念解释
同一列里有的数写到两位小数,有的写成整数,小数点就不再落在同一条垂线上,10 和 10.50 无法靠位置比较。小数位数一致(consistent fractional digits)是比较意图对格式的要求:要纵比,就先把小数点当成列里的那根轴,位数补齐,空位用零或等宽的空白占住。
机制
小数点是位值从整数跨到小数的锚。纵向比较时,眼睛先找这根锚,再看锚两侧。位数不齐,锚左右晃,整数那一行的个位可能对准了另一行的十分位,数量级被格式偷换。货币列尤其明显:有的系统把整数金额丢掉小数,有的始终留两位,混在一列里像两套账。科学计数、百分比同理——有的 12%、有的 12.0%,百分号对齐了,有效数字没对齐。补零不是为了假装更高精度,是为了把格子填满;若精度确实不同,应分列或显式标出有效位,而不是靠省略小数来「看起来更干净」。
边界
汇总行与明细行精度不同是会计传统(明细到分、汇总到元),要在视觉上把汇总行分开,不能假装它们在同一根小数点轴上。缺失值、尚未计算的单元格不应写成 0.00 来凑齐位数,那会变成假数据;用空白或破折号,且不要让破折号去对小数点。非比较列(时间码、固件版本 1.0.3)里的点不是小数点,不适用补位。语言与地区的小数分隔符不同(逗号或点),一致的是「这一列每一位的角色」,不是哪一个字形。
怎么落地
- 同一比较列约定小数位,渲染时补零或用等宽空白把点对齐;不要让原始数据有几位就画几位。
- 把
10、10.5、10.50丢进一列,看点是否共线。点在跳,比较任务已经失败,先别谈要不要加粗最大值。 - 精度不同的汇总单独成行并换一行样式,避免和明细抢同一根轴。