Localization 欧洲人如何用小数写数字列表?

Localization 欧洲人如何用小数写数字列表?,localization,number-formatting,Localization,Number Formatting,据我所知,欧洲人(*)写数字时用逗号作为小数点分隔符,因此四分之一写为1,25 欧洲人也使用逗号分隔列表,那么如何编写十进制数字列表呢?一、 作为一个英国人,他会这样写四分之一,四分之一半,四分之一和四分之三: 1.25, 1.5, 1.75 你在欧洲是怎么做到的 (为什么这是一个编程问题?因为我正在编写一个程序,要求欧洲用户提供一个数字列表!) *就本问题而言,欧洲没有英语国家。:-) 我认为没有一种方法可以做到这一点。用空格分隔数字的效果是一样的,或者你可以用分号(;”)来分隔数字我是欧洲

据我所知,欧洲人(*)写数字时用逗号作为小数点分隔符,因此四分之一写为
1,25

欧洲人也使用逗号分隔列表,那么如何编写十进制数字列表呢?一、 作为一个英国人,他会这样写四分之一,四分之一半,四分之一和四分之三:

1.25, 1.5, 1.75
你在欧洲是怎么做到的

(为什么这是一个编程问题?因为我正在编写一个程序,要求欧洲用户提供一个数字列表!)


*就本问题而言,欧洲没有英语国家。:-)

我认为没有一种方法可以做到这一点。用空格分隔数字的效果是一样的,或者你可以用分号(
;”
)来分隔数字

我是欧洲人(法国人),在这里几乎所有的程序中我们都必须使用分号作为分隔符,即使数字只是整数,因为逗号看起来不像分隔符。在数学中,分号是分隔数字列表的唯一正确方法


最常见的例子是,当我们必须输入要在PDF上打印的页码时,所有程序都会要求使用分号分隔的列表,我显然觉得这很直观。我想如果这对某些人来说不舒服,他们会改变的。

为什么要问欧洲人?我认为欧洲没有一种方法可以做到这一点,如果碰巧是这样的话,那纯粹是运气。欧洲由不同的文化组成,每个文化都有自己的规则

你没有提到你使用的是什么平台,但是你可以依靠你的平台来获取这些信息。在.NET的情况下,您可以通过。例如,这将为您提供法语(结果:分号):


这因文化和文化内部而异。CLDR数据包含指定列表分隔符的t,对于大多数区域性,它是分号,请参见(元素“list”)。尽管定义非常含蓄,但在区域设置中也存在差异。有些人认为1,25,1,5,1,75可以接受,而另一些人则更喜欢1,25;1,5; 1,75. 也有人严肃地认为,在数学或数值性很强的环境中,应该脱离现场实践,使用带有小数点的盎格鲁-撒克逊符号,因此使用逗号作为分隔符

在实际方面,我认为使用“当使用十进制逗号时,甚至当使用小数点时,用作数字列表分隔符。所以你甚至可以考虑使用“。”在所有地区

但是当涉及到用户输入时,它就更复杂了。原则上,你接受的东西应该是自由的,但是因为逗号可以是十进制逗号、千位分隔符或列表项分隔符,所以有一点太自由了


如果可能,分别提示输入每个数字,避免分隔符问题。如果这是不可能的,关键的事情是要使它非常,非常清楚的使用分离器是预期的。我甚至会说,需要分号“是最可靠的做法。

我建议向用户询问数字列表时,不要使用逗号作为分隔符号(例如,告诉用户仅按空格分隔数字),“这是您经常看到的。我认为您弄错了。逗号用于对较大的数字进行分组,因此1000实际上是1000。一些欧洲人(特别是乌克兰人)在逗号后加空格,用作项目分隔符,但他们不在逗号后加空格,用作小数部分分隔符。欧洲有很多英语国家:爱尔兰、马耳他、,荷兰、挪威、瑞典、丹麦、塞浦路斯,也许还有其他国家。当这是一个特定于文化的问题时,欧洲是一个非常愚蠢的术语。德国、英国、法国和你已经深陷这些细节。例如,即使是说德语的国家,德国和瑞士在数量上也存在差异,瑞士虽然不在欧盟,但在地理上却在欧洲。约会更糟糕;)空格可能不明智,因为一些地区(我相信法国)使用空格来分隔大量的数字组(数千)(英语用户会使用
s)。。。EN:12345.678 FR:12345678!
string listSeparator = new CultureInfo("fr-FR").TextInfo.ListSeparator;