【问题标题】:Localization with Decimal Separator使用小数分隔符进行本地化
【发布时间】:2010-10-14 13:57:45
【问题描述】:

.NET 是否有可能在服务器 A 上使用“,”作为小数分隔符并在另一台服务器 B 上使用“.”? + 您如何检测到这一点?

将字符串转换为双精度时,在服务器 A 上一切正常,但在服务器 B 上出现问题。

例子:

服务器 A : 20,4 --> 20.4 服务器 B : 20,4 --> 204

我们需要检测到这一点,以便在两台服务器上都能正常工作。

谢谢,利文·卡登

【问题讨论】:

    标签: .net localization decimal separator


    【解决方案1】:

    听起来像是在一台服务器上正确设置了区域设置,但在另一台服务器上却没有。

    有几种方法可以做到这一点,但您可能希望使用 Thread.CurrentThread.CurrentCulture 和 Thread.CurrentThread.CurrentUICulture 为 App/ASP.NET 页面中的当前线程设置语言环境。

    要为整个应用程序设置此项,您可以在 web.config 中执行此操作:

    <configuration>
      <system.web>
        <globalization culture="en-US" uiCulture="en-US" />
    ...
    

    【讨论】:

    • 你可以为整个 asp.net 应用程序而不是分别为每个线程设置这个吗?
    • 我猜你的情况可能是“nl-BE”或“fr-BE”,但你明白了。
    【解决方案2】:

    我用

    String.Format(System.Globalization.CultureInfo.InvariantCulture, ....)
    

    在您不希望有特定文化输出的情况下。 (例如,当您为其他应用程序编写序列化数据时等)这样无论当前设置什么文化,输出都将始终相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-06
      • 2023-04-06
      • 2013-11-07
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多