S2.02.2Locale-specific digit grouping sizes设计
分组位数不都是三位
别名: 数字分组位数 · 印度数字分组 · primary secondary grouping
概念解释
地区化数字分组位数(locale-specific digit grouping sizes)指整数分组不一定从右到左始终每三位一组。某些 locale 数字模式先以三位形成最右组,之后以两位重复分组。minimumGroupingDigits 还可在整数位数少于 primary grouping size 加该阈值时抑制首个分组符。所谓“千分位”因此只是部分地区模式的俗称,不能作为全球数据模型。
机制
Locale 数字模式可以分别定义最靠近小数点的 primary grouping size 与其左侧重复的 secondary grouping size。例如同一数量在一种模式中按 12,345,678 分组,在另一种模式中可按 1,23,45,678 分组。数字系统主要规定使用哪套数字字符,并不决定分组尺寸。分组帮助读者识别数量级,而机械地每三位插入符号会打断目标地区熟悉的万、十万或千万层级。
边界
账号、证件号、电话号码和产品编号虽然由数字组成,却通常不是可计算数量,不应自动按数值分组。年份和短整数也可能按 locale 规则不分组。分组位置只是可读性表示,不改变数值;数据库和计算逻辑不应依赖逗号出现次数推断数量级。
怎么落地
- 使用支持 locale 数字模式的格式器,让 primary、secondary 与
minimumGroupingDigits阈值由数据决定,不自行每三位插入字符。 - 在字段模型中区分数量与数字标识符;只对前者应用数字分组,后者遵守各自的号码格式规则。
- 围绕目标 locale 的首个分组阈值测试少一位、恰好达到与多一位,并覆盖 primary/secondary 边界、负数、小数、紧凑记法和非拉丁数字。
- 视觉对齐表格时按数值与小数位布局,不通过删除本地分组符强迫所有地区获得同一字符串宽度。