【问题标题】:Negative zero in JavaScript? [duplicate]JavaScript中的负零? [复制]
【发布时间】:2015-05-27 00:06:09
【问题描述】:

我刚刚注意到我可以在 JavaScript 中执行以下操作:

var z = -0;
console.log(z); // prints -0

为什么一元否定对零起作用?

这是 JavaScript 的众多怪癖之一还是它(不知何故)有目的?


附:

这似乎发生在 Firefox 38.0a2 和 Chrome 41.0.2272 上。在 Node.js v0.10.36 上不会发生。不知道 IE。

【问题讨论】:

标签: javascript negative-number unary-operator


【解决方案1】:

你刚刚遇到了signed zero

浮点算术的 IEEE 754 标准(目前由支持浮点数的大多数计算机和编程语言使用)需要 +0 和 -0。带符号零的实数算术可以被认为是扩展实数轴的变体,使得 1/-0 = -∞ 和 1/+0 = +∞;除法仅在 ±0/±0 和 ±∞/±∞ 时未定义。

Javascript 中的所有数字都是浮点数,因此必须对零进行签名。

【讨论】:

    【解决方案2】:

    我认为这不是问题。至少alert(-0 == 0) 返回true。我猜如果值是0,如果有一个位用于符号,这个位也可以设置。但是,它仍然是相同的数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 2016-08-25
      • 1970-01-01
      • 2014-09-02
      • 2011-03-09
      • 2012-08-24
      • 1970-01-01
      相关资源
      最近更新 更多