【问题标题】:Parsing decimal value issue [duplicate]解析十进制值问题[重复]
【发布时间】:2017-08-31 11:22:05
【问题描述】:

我在 JSONResult 中从控制器传递了确切的 ID(即 123456789123456.99),但是当我在 AJAX 响应中获取值时,我得到了 Id(即 123456789123456.98)。

我在解析数据时观察到 JavaScript 中有一个奇怪的行为。请查看下图。任何人都可以在这里帮助我在通过 JSON 解析后获得相同的 ID。

【问题讨论】:

  • 字符串不行吗?
  • 欢迎来到浮点数的世界,.. 这也不是 JSON 问题。. 为了更好地处理大数字,您可能想要查看一些 JavaScript 中的 BCD 实现进入。
  • 我相信这与浮点数不准确有关,看看stackoverflow.com/questions/2100490/…
  • 也许这会有所帮助:stackoverflow.com/questions/1458633/…
  • @Keith - 你能提供我在 JS 中实现 BCD 的链接以及解决我的问题的方法吗?

标签: javascript jquery json asp.net-mvc jsonparser


【解决方案1】:

Id 值太大。 JavaScript 对数字使用双精度浮点数,它们的精度约为 15 位。 JavaScript 可以可靠保存的最大整数是 2^51。这就是为什么解析时值会四舍五入的原因。

但是,您可以通过将数字作为字符串发送来解决此限制,如下所示:

var res = '{"Id":"123456789123456.99"}';

【讨论】:

  • 我不想在我的模型中添加带有字符串的新属性。还有其他解决方法吗?
猜你喜欢
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多