据我了解,欧洲人(*)用逗号作为小数分隔符写数字,所以四分之一写为1,25
欧洲人也用逗号分隔列表,那么十进制数的列表怎么写呢?我,作为一个英国人,会这样写四分之一、四分之一、四分之一和四分之三:
1.25, 1.5, 1.75
你在欧洲是怎么做到的?
(为什么这是一个编程问题?因为我正在编写一个程序,它会向欧洲用户询问数字列表!)
* 就本问题而言,欧洲没有说英语的国家。:-)
据我了解,欧洲人(*)用逗号作为小数分隔符写数字,所以四分之一写为1,25
欧洲人也用逗号分隔列表,那么十进制数的列表怎么写呢?我,作为一个英国人,会这样写四分之一、四分之一、四分之一和四分之三:
1.25, 1.5, 1.75
你在欧洲是怎么做到的?
(为什么这是一个编程问题?因为我正在编写一个程序,它会向欧洲用户询问数字列表!)
* 就本问题而言,欧洲没有说英语的国家。:-)
我是欧洲人(法国人),在这里几乎所有程序中,我们都必须使用分号';'
作为分隔符,即使数字只是整数,因为逗号对我们来说看起来不像分隔符。在数学中,分号是分隔数字列表的唯一正确方法。
最常见的例子是当我们必须输入要在 PDF 上打印的页码时,所有程序都要求使用分号分隔的列表,我显然发现它很直观。我认为如果某些人感到不舒服,他们会改变它。
这因文化和文化而异。CLDR 数据包含指定列表分隔符的“ list”元素,它是大多数文化的分号,参见数字符号图表(元素“list”)。不过,该定义非常隐含,并且在语言环境中存在差异。有些人认为 1,25、1,5、1,75 可以接受,而另一些人则更喜欢 1,25;1,5; 1,75。也有人认真地认为,在强烈的数学或数字上下文中,应该偏离语言环境的做法,使用带小数点的盎格鲁-撒克逊符号,因此使用逗号作为分隔符。
在实际方面,我认为使用“;”不会是很错误的。当使用十进制逗号时,甚至在使用小数点时,作为数字列表分隔符。所以你甚至可以考虑使用“;” 在所有语言环境中。
但是当涉及到用户输入时,就比较棘手了。原则上,您接受的内容是自由的,但由于逗号可以是十进制逗号、千位分隔符或列表项分隔符,因此存在过于自由的情况。
如果可能,请分别提示每个数字,避免分隔符问题。如果这是不可能的,关键是要非常非常清楚地知道使用哪种分隔符。我什至会说需要分号“;” 是最可靠的事情。
为什么要问一般的欧洲人?我不认为有一种欧洲的方式可以做到这一点,如果碰巧是这种情况,那将是纯粹的运气。欧洲由不同的文化组成,每种文化都有自己的规则。
您没有提及您使用的是什么平台,但您可能可以依靠您的平台来获取此信息。对于 .NET,您可以通过Textinfo.ListSeparator获取此信息。例如,这会给你法语(结果:分号):
string listSeparator = new CultureInfo("fr-FR").TextInfo.ListSeparator;
我不认为有一种方法可以做到这一点。分隔数字的空格也一样,或者您可以使用分号 ( ';'
) 分隔数字