【问题标题】:Is there is a more concise representation of Infinity in JSON than 1e309?JSON 中有比 1e309 更简洁的 Infinity 表示吗?
【发布时间】:2012-09-02 07:24:19
【问题描述】:

这是我能找到的最小的。

【问题讨论】:

标签: json floating-point nan infinity


【解决方案1】:

JSON RFC (https://www.rfc-editor.org/rfc/rfc4627) 声明 NaN、正无穷大和负无穷大不能用 JSON 表示:

不允许使用不能表示为数字序列的数值(例如 Infinity 和 NaN)。

我不知道你从哪里得到 1*10^309,因为 Javascript 的最大精确整数值是 2^53。

当您说“简洁”时,您实际上是指“简洁”吗?

【讨论】:

  • "Javascript 的最大数值是 2^53" - 我不认为这是正确的。 IIUC,Javascript 使用 IEEE 754 binary64 格式来存储所有数字(无论是整数还是浮点数)。 2^53 的意义在于,所有绝对值不超过 2^53 的整数值都可以精确表示,但是一个 JS Number 可以表示最大为 2^1024 - 2^971 的值,即 1.8e308 左右。
  • 是的,你是对的。 2^53 是整数值的最大值(基于可用的有效位数)。我忘记了浮动值限制(尽管这实际上是关于浮动的线程)。
  • 它没有说明使用 null 作为无穷大
  • @DataGreed 谢谢指正,我已经修改了答案。
猜你喜欢
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 2020-11-29
  • 2013-09-02
  • 2012-06-30
  • 2013-09-10
  • 1970-01-01
相关资源
最近更新 更多