Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么千位分隔符被称为“千位分隔符”;分组分隔符“;?_Java_Objective C_Locale_Number Formatting - Fatal编程技术网

Java 为什么千位分隔符被称为“千位分隔符”;分组分隔符“;?

Java 为什么千位分隔符被称为“千位分隔符”;分组分隔符“;?,java,objective-c,locale,number-formatting,Java,Objective C,Locale,Number Formatting,在许多编程语言中,千位分隔符(例如,美国字符串中的“,”1000”)称为“分组分隔符”。为什么会这样 是否存在在其他边界上分隔写入整数的真实区域设置?人们会在某处写86,75,30,9或8675309这样的数字吗?如果是,这些地区是什么 今天我在Objective-C中遇到了这个问题,当时我记不起常量的名称,无法找到该分隔符的字符串。我正在输入“NSThou”,但没有自动完成。我不得不去看医生,提醒你是这样得到的: NSLocale*loc=[NSLocale currentLocale]; N

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

是否存在在其他边界上分隔写入整数的真实区域设置?人们会在某处写86,75,30,9或8675309这样的数字吗?如果是,这些地区是什么

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

NSLocale*loc=[NSLocale currentLocale];
NSString*sep=[loc objectForKey:NSLocaleGroupingSeparator];
然而,这并不是Objective-C所特有的;我记得在我以前的Java时代,它被称为同样的东西。(Python的人,OTOH,似乎称之为“.”)说:

例如,在许多国家(如中国、印度和日本),都有按2或4位数分组的传统惯例


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

一百

一千

一万

10万

100万

1,00,00000

只有少数国家遵循3人一组的原则

十万

100000000



再加上这一点,你可能会对一些国家的用途感到困惑。而且,为了表示十进制和千位分隔符,这里你不能说这个值代表什么,比如10000、10000.00和10000,00,因此当你要求用户输入数字时,你需要设置数字格式的本地化。作为一个中国人,我想我对这个问题有发言权

中文的数字系统和英文有点不同,我们把数字分成4,而不是3。这是因为我们有一个额外的单位万 (“万”,一万)在千、百、十和一之上。所以英语中的1000000是一百万,而汉语中是一百个“wan”,所以写的是1000000而不是1000000


还值得指出的是,许多编程语言在这方面都有错误的语言环境实现,例如Java的字符串格式。

或更复杂的方式。请参阅,例如。请注意,
NSNumberFormatter
类有两种设置分组的方法:
setGroupingSize:
setSecondaryGroupingSize: