将参数分隔为函数,在逗号中使用逗号作为十进制标记

时间:2010-05-24 18:58:30

标签: function localization numbers

在区域设置中,例如法语,逗号为十进制指示符(其中“5,2”表示五和十分之二),用户如何将函数参数彼此分开?

例如,在许多编程/脚本语言中,我可以在EN-US语言环境中指定MAX(1.5,X)。如何避免逗号作为十进制指示符和参数分隔符之间的歧义?

特别是,我对在国外语言环境中被认为是用户友好的软件如何做到感兴趣。显然,说“虽然使用十进制POINT”是一个明智的选择,但这并不是特别“友好”。

1 个答案:

答案 0 :(得分:2)

在使用DB2汇总对我们产品的查询时,我们遇到了这个确切的问题。

我们有一个查询:

select fn (COLUMN_NAME,5.2) from TABLE_NAME

并且5.2实际上是由我们的软件根据用户选择动态插入的(暂时忘记注入攻击,通过其他方式阻止它们)。

在"五和十分之二"被写成5,2(对那些欧洲人来说),我们最终得到了:

select fn (COLUMN_NAME,5,2) from TABLE_NAME

DB2抱怨道。

IBM给出的解决方案是确保分隔符逗号两侧都有空格,十进制逗号没有:

select fn (COLUMN_NAME , 5,2) from TABLE_NAME

但是你会发现很多语言都是用你提到的非友好方式完全来解决这个问题。尽管ISO非常符合国际化标准,但是没有任何类似ISO C的标准(好吧,我所知道的,无论如何)都不允许将常数引用为5,2。组织。他们也不要求将ifwhilefor等关键字本地化为阿拉伯语,蒙古语或克林贡语: - )

相关问题