【问题标题】:Avoiding localiztion on formatting numbers written to file避免对写入文件的格式化数字进行本地化
【发布时间】:2010-01-20 19:08:51
【问题描述】:

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

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

问题是在某些语言环境中,最终会使用逗号而不是句点。问题是,是否有一种格式代码显示“始终使用句点”,或者是否是唯一能与语言环境混淆的解决方案?

【问题讨论】:

    标签: c# localization format numbers


    【解决方案1】:

    简单使用:

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

    【讨论】:

      【解决方案2】:

      我建议尝试 FxCop(或 VS2005+ 的 Team 变体的代码分析功能)。 它会产生很多噪音(误报),但确实提供了很多好的做法。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多