JSON转换器将double值转换为科学记数法

时间:2015-05-11 07:52:41

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

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

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

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

3 个答案:

答案 0 :(得分:0)

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

从计算机的角度来看,数字是相同的,只有可视化格式才会发生变化。

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

唯一的解决方案是,如果您不需要将其视为前端的数字,则将其转换为格式化字符串,并将值作为字符串发送到前端。但是,如果在客户端将其视为数字,则会丢失格式。请记住,JavaScript是动态类型的。

答案 1 :(得分:0)

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

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

JavaScriptSerializer serializer = new JavaScriptSerializer(); objectString = serializer.Serialize(new MyObject());`

答案 2 :(得分:0)

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

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