首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CultureInfo.InvariantCulture的使用

CultureInfo.InvariantCulture的使用
EN

Stack Overflow用户
提问于 2015-03-13 13:12:20
回答 2查看 1.2K关注 0票数 3

我正在做一个在文本框中使用小数的项目。我目前正在开发一台机器,它的十进制分隔符设置为",“而不是”。因此,在将文本字符串解析为十进制时,我不得不使用这个句子:

代码语言:javascript
复制
decimal number = Decimal.Parse(number.Text, CultureInfo.InvariantCulture);

现在..。CultureInfo.InvariantCulture是正确的做法,还是应该使用CurrentCulture?

谢谢,

玛蒂亚斯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-13 13:14:24

对于用户输入,通常需要CultureInfo.CurrentCulture。您使用的区域设置并不是通常的用户情况--如果用户在整个系统中使用,作为小数点,那么他们可能已经习惯于使用这个位置,而不是您喜欢的.。换句话说,当您在这样一个具有区域设置的系统上进行测试时,请学习使用,而不是. --这是使区域设置测试有用的部分内容:)

另一方面,如果您正在将值存储在配置文件中或类似的东西中,那么您确实希望使用CultureInfo.InvariantCulture

这个想法相当简单--是用户的数据(=> CurrentCulture),还是应该是全局的(=> InvariantCulture)?

票数 4
EN

Stack Overflow用户

发布于 2015-03-13 13:17:04

如果你做了正确的国际化程序..。

( A)如果您使用的是Winforms或WPF,或者通常用户将在程序的机器上“工作”,那么输入解析应该使用CurrentCulture完成。

B)如果您正在进行web编程,那么用户应该能够选择它的区域性,而CurrentCulture (web服务器的区域性)应该仅用作默认的。

然后,

( A)保存“内部”的数据(因此要编写,然后由程序读取)应该使用InvariantCulture

( B)与其他应用程序交换的数据最好用InvariantCulture编写(除非另一个应用程序编写得不好,并且需要特定的格式),

( C)导出给用户的文件应该遵循前面的规则(关于用户界面的规则),除非您使用的是像XML这样的“标准定义格式”(然后使用Xml格式化程序)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29033144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档