【问题标题】:C# MVC 4 model changing floating point?C# MVC 4 模型改变浮点数?
【发布时间】:2013-11-11 11:53:24
【问题描述】:

我在全球化和浮点方面遇到了一些问题。有趣的是,如果我以 en-GB 格式发送数据并且浮点数是“。” (点)一切看起来都很好

但是当我用昏迷“,”改变文化时,一切都会变得很奇怪:)

现在在上面的屏幕中你可以看到 POST 发送“0,07”但模型给我“7”。任何想法如何解决这个问题?

Tx 以获得答案和想法 :)

【问题讨论】:

  • EN-GB 使用小数点作为.,因此它将忽略逗号。因此,您将得到 007 作为浮点数:7.0。不太清楚你在问什么,如果你想让0,07 被接受为浮点数,那么改变文化?
  • 就像你在屏幕上看到的那样,在帖子中使用数字时,它带有“。”当我用“,”作为浮动分隔符 POST 发送“0,07”但实体上的模型给我“7”时,一切看起来都很好
  • 你能告诉我们你是如何以及在哪里设置文化的吗?
  • 你用什么文化来表示用逗号格式化的浮点数
  • (pl-PL) 例如波兰文化,首先我有方法来改变我在会话当前文化中设置的文化,然后在 globa.asax inprotected void Application_AcquireRequestState(object sender, EventArgs e) 我把这种文化和这种对我相信的问题的穿着是另一种方式:)只是不知道在哪里......但是

标签: c# asp.net-mvc asp.net-mvc-4 globalization


【解决方案1】:

一定要设置 CurrentThread.CurrentCulture 因为那是用来解析数字的。

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_AcquireRequestState(object sender, EventArgs e)
    {
        var culture = CultureInfo.CreateSpecificCulture("pl-PL");
        Thread.CurrentThread.CurrentUICulture = culture;
        Thread.CurrentThread.CurrentCulture = culture;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-05
    • 2020-02-21
    • 1970-01-01
    • 2017-03-25
    • 2013-09-13
    • 1970-01-01
    • 2022-01-04
    • 2013-08-27
    相关资源
    最近更新 更多