全球化(6):数字格式设置
在处理数字值时,有六个主要项目必须要注意:
1、用作千分位分隔符的字符:
在美国,该字符为逗号 (,)。在德国为句点 (.)。因此,一千零二十五就显示为 1,025(在美国)和 1.025(在德国)。在瑞典,千位分隔符为空格。
2、用作小数分隔符的字符。
在美国,该字符为句点 (.)。在德国为逗号 (,)。因此,一千零二十五点七就显示为 1,025.7(在美国)和 1.025,7(在德国)。
3、负数的显示方式。
可将负号放在数字开头,也可将其放在数字的末尾。另外,数字还可以带括号显示,或者甚至带颜色(如红色)显示。因此,负五百二十七可以显示为:
4、数字的形状或者它们
与十进制数字是否一一对应。
当然,数字在不同的区域设置可能具有不同的形状。此外,一些区域设置中的数字可能不是与
美国使用的数字 (0-9) 直接对应。(参见下表1)
表 1:用于英语(美国)、阿拉伯语和日语区域设置的数字。
请注意,日语比阿拉伯语或英语(美国)多一位数字。它代表数字 10。
5、数字分组。
这是指出现在小数分隔符左侧的所有数字组的各分隔符之间的数字个数。例如,大多数地域采用 3 个数字组合,例如英语(美国):123,456,789.00。但请注意,除了表示百位时使用 3 个数字组合以外,北印度语采用 2 个数字组合:12,34,56,789.00
6、百分号 (%) 的位置。
它有多种书写形式:98%、98 %、98 pct、%98。因此,您绝对不要认为您可以硬编码百分号。
.NET的标准数字格式:
符号 |
说明 |
示例 |
输出 |
C | 货币 | string.Format("{0:C3}", 2) | $2.000 |
D | 十进制 | string.Format("{0:D3}", 2) | 002 |
E | 科学计数法 | 1.20E+001 | 1.20E+001 |
G | 常规 | string.Format("{0:G}", 2) | 2 |
N | 用分号隔开的数字 | string.Format("{0:N}", 250000) | 250,000.00 |
X | 十六进制 | string.Format("{0:X000}", 12) | C |