【发布时间】:2015-10-15 20:32:52
【问题描述】:
我正在将 JSON 从服务器发送到客户端。 JSON 包含一个long。
看来这个数字正在被四舍五入之类的,因为:
- 发送的服务器端号为:
1036647050030089506 - 收到的客户端号码是:
1036647050030089500
为什么会发生这种情况,我该如何解决?
服务器端代码:
Post["team", true] = async (parameters, ct) =>
{
var team = this.Bind<Team>();
team.Id = 1036647050030089506;
Console.WriteLine("Response: " + team.Id);
return Response.AsJson(team);
};
客户端代码:
$.ajax({
url: '/api/team',
type: 'POST',
dataType: "json",
success: function (response) {
alert("Response: " + response.id);
}
});
【问题讨论】:
-
哇,不……不要那样做。响应肯定是 json。这里的问题是,尽管 JSON 可以处理无限大的数字,但 JavaScript 不能,因此当它尝试将非常大的值转换为浮点数时,您会遇到精度损失问题。请参阅@JohnnyFun 的答案以获取更多详细信息。
标签: javascript c# ajax json asp.net-mvc