S2.02.3Locale-specific negative-number notation设计
负数的表示方式不同
别名: 负数格式 · 会计负数 · negative pattern
概念解释
地区化负数表示(locale-specific negative-number notation)是由数字格式模式决定负号的字符、位置、间距及是否使用括号或会计样式。负值可能显示为前置或后置符号,也可能在货币报表中以括号表达。底层符号仍应是负的数值语义,而不是把括号、颜色或连字符存成数据。
机制
数字格式器把负子模式与数字系统、货币符号和双向文本规则一起应用。在 RTL 或混合方向界面中,视觉上位于数字一侧的符号不等于字符串中的简单前后拼接。应使用格式器输出的 locale minusSign(包括必要的双向控制标记),而不是自行替换或拼接 ASCII hyphen-minus。会计模式可能用括号对齐正负金额,但颜色只能是冗余提示。
边界
负数与“下降”“亏损”“欠款”不是同一语义:变化量为负、余额为负和百分比下降需要不同标签与基线。底层 IEEE 负零与非零负数经舍入后显示为零也不同;普通财务界面可按领域选择隐藏负零、增加精度或标为近似,科学场景可能要保留方向性,但显示策略不得改写原值。数学、编程或协议文本则可能要求固定 ASCII 语法。
怎么落地
- 保存有符号数值并使用目标 locale 与用途对应的 decimal、percent、currency 或 accounting formatter。
- 为负值提供文字或结构化语义,让屏幕阅读器读出“负”或业务含义;不要只依赖红色、括号位置或视觉方向。
- 分别测试底层负零、舍入后显示为零和极小负数,并为 formatter 的 sign-display 与舍入组合规定可判定预期;再覆盖货币、百分比、RTL 与复制粘贴。
- 排序和计算使用原始数值;导出时明确是本地显示格式还是机器格式,避免下游按括号或颜色猜正负。