【问题标题】:Format dates by UI culture, but floats and numbers as InvariantCulture按 UI 文化格式化日期,但浮动和数字为 InvariantCulture
【发布时间】:2017-02-18 13:25:36
【问题描述】:

在我的 .NET Core Web 应用程序中,我已将 UI 文化更改为与用户对应的文化。但是,当我输出浮点数等时,我希望它是 InvariantCulture,因为我在解析时遇到了很多问题。

例如,在丹麦,小数点分隔符是逗号,而不是点。

如果我有 8.5 的流量,它会将其打印为 8,5。 但是,当我保存它时(例如,从输入到模型中的浮点属性),我将其提交为 8,5,但 .NET 无法将其解析为浮点数中的 8.5。它只是变成了 85。

因此,我希望将浮点数和数字完全作为 InvariantCulture,因为一直转换它很痛苦。

关于如何做到这一点的任何想法?

【问题讨论】:

  • 为什么不按 UI 文化来格式化数字呢?显然这会产生问题。
  • 这已经被问过了。基本上,您需要为日期创建自定义文化。 stackoverflow.com/questions/2513503/…

标签: c# asp.net .net


【解决方案1】:

当然,.Net 可以正确解析!这就是float.Parse 中的IFormatProvider 参数:

CultureInfo ci = new CultureInfo("dk-DK");
float x = float.Parse("8,5", ci);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多