S2.02.1Locale-specific decimal and grouping separators设计

小数点与千分位符号随地区互换

别名: 小数分隔符 · 数字分组符 · decimal separator

概念解释

地区化小数与分组符号(locale-specific decimal and grouping separators)是由 locale 规定数值中小数边界和整数分组使用何种字符。点、逗号、空格类字符在不同地区可承担不同角色,因此 1,234 可能表示一千二百三十四,也可能表示一点二三四。界面应保存数值本身,由格式化器输出;输入时则按明确 locale 解析,不能用全局字符替换猜测。

机制

读者依靠符号位置与本地习惯共同识别数量级。格式器会把数值模式、数字系统、小数符和分组符作为一套 locale 数据应用;手工将句点替换成逗号可能同时破坏分组、货币或非拉丁数字。解析比显示更危险:在错误 locale 下,解析器可能把逗号当作可忽略分组符,将 1,5 变成 15。解析接口因此必须显式指定 locale 并确认完整输入被消费;字符等价与严格程度属于输入策略。

边界

程序源代码、数据库和 API 可以规定与 locale 无关的机器语法,但用户输入框不应把该内部协议冒充本地格式。科学数据、金融终端或跨国团队也可能采用明确行业约定;关键是界面清楚说明并一致解析。分隔符地区化不能解决精度、舍入、单位或货币含义。

怎么落地

  • 数据层使用数值类型,显示层调用 locale-aware 数字格式器;不要把已格式化字符串参与计算或排序。
  • 分别检查 decimal 与 group 符号在目标 locale 和数字系统中的实际字符;若货币使用专属 currencyDecimalcurrencyGroup,交给货币格式器处理。
  • 任何反向解析都必须带明确 locale、要求完整消费输入并拒绝未解释的残余字符;宽松、严格与回显策略由数字输入契约决定。
  • 在界面与导出样例中核对数量级、辅助技术朗读和复制后的字符,避免视觉相似符号掩盖错误数值。

延伸

  • 同组S2.02.2 分组位数不都是三位 · S2.02.3 负数的表示方式不同 · S2.02.4 数字输入需接受本地格式
  • 相邻S2.01 日期与时间格式 · S2.03 货币与价格
  • 站内检索CLDR number symbols · decimal separator · grouping separator

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/S2.02.1