在许多编程语言中,千位分隔符(例如,美国字符串“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,似乎称之为“thousands separator”。)
答案 0 :(得分:6)
例如,在各个国家(例如,中国,印度和日本),传统的传统惯例是按2位或4位分组。
答案 1 :(得分:3)
很少有像印度及其邻国的国家使用千位分隔符来提高可读性,因为只有最后三个分为三个并且分为两个:像
100
1000
10,000
1,00,000
10,00,000
1,00,00,000
少数国家/地区遵循3的分组
100000
亿
除此之外,您可能会对几个国家的用途感到困惑。并且,为了代表十进制和千位分隔符,这里你不能说这个值代表10,000,10000.00和10000,00,因此每当你要求用户输入数字时你需要设置数字格式的本地化
答案 2 :(得分:0)
作为中国人,我想我在这个问题上有发言权。
中文数字系统与英文数字系统有所不同,因为我们将数字分组为4,而不是3。这是因为在千位,百位,十和一。因此,英语中的1000000是一百万,而中文是一百“ wan”,因此写成100,0000而不是1,000,000。
还需要指出的是,许多编程语言在此问题上都具有错误的语言环境实现,例如Java的字符串格式。