我最近意识到某些国家/地区会显示不同逗号/句点表示法的浮点数。
即。我们将有12,500.34,有些国家会将其列为12.500,34
这可能不是显示器的问题,但是文本输入呢?例如,我想如果我有一个十进制类型并将其显示在标签中,那么ToString()方法(或者您选择的语言中的等价物)将使用本地化设置并正确显示它,以及各种解析'str - >数字'方法也可能有用。
但是文本验证怎么样?就像说我希望文本框只允许5个数字,然后是一个可选的小数点和最多4个数字?当你不知道他们的分隔符是什么时,这种情况有什么常见的解决方案?显然我现在使用的硬编码正则表达式模式会失败,所以我只是想知道你们有些人在这些情况下做了什么?
感谢任何建议
答案 0 :(得分:0)
无论它们存在于哪里或者它们被指定,您都需要封装特定于区域设置或可以是区域设置的规则,或者解析可能是特定于区域设置的输入(用于验证)。这样您就可以根据区域设置切换实现。
根据这些内容的方式和位置,您可以使用一些框架(JPF does this)在框架中应用,或者您也可以扩展框架以使用它们。
答案 1 :(得分:0)
这将取决于语言。没有两种语言可以完全相同。
我可以就Java提出一些建议。在Java中,您可以使用NumberFormat处理此问题。如果NumberFormat.parse()在不抛出异常的情况下工作,那么它就是正在使用whataver语言环境中的有效数字。您可以设置您将接受的最大小数位数等等。所有这些都是高度特定于Java的,所以除非您说Java正在使用Java,否则我不会费心去做。