【问题标题】:JSON converter converting double value to scientific notationsJSON转换器将双精度值转换为科学记数法
【发布时间】:2015-05-12 08:14:17
【问题描述】:

在我的 Web Api 控制器中,我将我的模型发送到 Angular.js 前端,其中我得到了一个可以为空的双精度字段类型。该字段的值为 0.0000001。

现在,当我在控制器级别检查该值时,它显示为 0.0000001(正是我想要的),但在前端是 javascript(Angular.js),它被转换为 1E-07,这是一个科学记数法那个。

现在无论如何我可以在我的控制器级别上解决这个问题,而无需在前端使用任何东西。我可以在前端级别轻松解决此问题,但在控制器级别找不到任何东西。

【问题讨论】:

    标签: c# asp.net-mvc angularjs asp.net-web-api


    【解决方案1】:

    如果是前端以不同的方式格式化它,你将如何在控制器中解决它?

    从计算机的角度来看,数字是一样的,变化只是在可视化格式上。

    如果您的前端出于某种原因更改了格式,请务必更改它。

    唯一的解决方案,如果你不需要在前端把它当作一个数字,那就是把它转换成格式化的字符串,然后把值作为字符串发送到前端。但是,如果它在客户端被视为数字,您将丢失格式。请记住,JavaScript 是动态类型的。

    【讨论】:

      【解决方案2】:

      是的。您可以在控制器级别修复此问题,而无需在前端使用任何东西。 在将结果发送到前端之前解析您的结果。像这样

      `使用 System.Web.Script.Serialization; ..

      JavaScriptSerializer 序列化器 = new JavaScriptSerializer(); objectString = serializer.Serialize(new MyObject());`

      【讨论】:

        【解决方案3】:

        我非常同意@JotaBe:这显然不是控制器的责任。

        无论如何,如果您想这样做,您可以:在 ASP.Net Web API 中,JSON 序列化由 Json.NET 执行。该库提供了多种控制流程的方法,其中之一是编写客户转换器并通过属性see here 对其进行配置。

        【讨论】:

          猜你喜欢
          • 2017-12-24
          • 1970-01-01
          • 2020-07-22
          • 1970-01-01
          • 2015-07-03
          • 2021-10-06
          • 1970-01-01
          相关资源
          最近更新 更多