避免在格式化写入文件的数字上进行本地化

时间:2010-01-20 19:08:52

标签: c# localization format numbers

我有一个程序,有时会在使用逗号作为小数分隔符的语言环境中使用。它很好C#处理所有这些(对UI有利),但是当我导出到文件时,我需要始终使用“。”,而不是特定于语言环境的数字。目前,我这样做:

String.Format(“{0:0。####},{1:0。####}”,x,y)

问题是在某些语言环境中,最终会使用逗号而不是句点。问题是,是否有一个格式代码说“总是使用期限”,或者是解决一个人的语言环境的唯一解决方案?

2 个答案:

答案 0 :(得分:7)

只需使用:

String.Format(CultureInfo.InvariantCulture, "{0:0.####},{1:0.####}", x, y)

答案 1 :(得分:1)

我建议您尝试使用FxCop(或VS2005 +团队变体的代码分析功能)。 它会产生很多噪音(误报),但确实提供了很多好的练习。

包括:总是使用带有IFormatProvider参数的重载(如果有) - 通常您将使用CultureInfo.CurrentCulture来格式化用户的输出,并CultureInfo.InvariantCulture用于将数据存储在文件中,注册表等。