3

在许多编程语言中,千位分隔符(例如,美国字符串“1,000”中的“,”)被称为“分组分隔符”。为什么是这样?

是否有任何现实世界的语言环境可以在其他边界上分隔写入的整数?某个地方的人会写 86,75,30,9 或 8675,309 这样的数字吗?如果是这样,这些语言环境是什么?

今天我在 Objective-C 中遇到了这个问题,当时我不记得常量的名称来查找此分隔符的字符串。我正在输入“NSThou”,但没有自动完成。我不得不去文档提醒你得到它是这样的:

NSLocale *loc = [NSLocale currentLocale];
NSString *sep = [loc objectForKey:NSLocaleGroupingSeparator];

然而,这并不是 Objective-C 特有的。我记得在我以前的 Java 时代,它被称为同一个东西。(Python 人 OTOH 似乎将其称为“千位分隔符”。)

4

3 回答 3

6

维基百科说:

例如,在各个国家(例如,中国、印度和日本),存在按 2 位或 4 位数字分组的传统惯例。

于 2013-03-08T04:13:27.000 回答
3

很少有像印度及其邻国这样的国家使用千位分隔符来提高可读性,因为只有最后三个被分成三组,其余两个:like

100

1,000

10,000

1,00,000

10,00,000

1,00,00,000

很少有国家遵循 3 组

100,000

100,000,000


再加上这一点,您可能会对少数国家用途感到困惑。并且,要表示十进制和千位分隔符,在这里你不能说这个值代表什么,如 10,000 、 10000.00 和 10000,00,因此你需要在要求用户输入数字时设置数字格式的本地化

于 2013-03-08T04:16:30.553 回答
0

作为一个中国人,我想我在这个问题上有发言权。

中文数字系统与英文的数字系统有点不同,我们将数字分组为 4,而不是 3。这是因为我们在千、百、十和一之上增加了一个单位万(“万”,万) . 所以1000000英文是一百万,中文是一百个“wan”,所以写成100,0000而不是1,000,000。

另外值得指出的是,许多编程语言在这个问题上都有错误的语言环境实现,例如 Java 的字符串格式。

于 2018-11-07T06:24:01.683 回答