代码输出负数和非负数的0都为真。

huangapple go评论66阅读模式
英文:

Code outputs both negative and non-negative 0 to be true

问题

以下是要翻译的内容:

这里有两种情况:

console.log(Math.abs(-16) % 2 === 0) //true
console.log(Math.abs(-16) % 2 === -0) //true

在第二种情况下,Math.abs() 不应该将-16更改为16吗?因此使其返回false,因为16 % 2 !== -0
还有,我如何解决这个问题,以便第二种情况(console.log(Math.abs(-16) % 2 === -0))不返回true,而是false

英文:

Here are two cases:

console.log(Math.abs(-16) % 2 === 0) //true
console.log(Math.abs(-16) % 2 === -0) //true

In the second case, isn't Math.abs() supposed to change -16 into 16, therefore making it return false because 16 % 2 !== -0?
Also how can i solve it so that the second case (console.log(Math.abs(-16) % 2 === -0)) doesn't return true, instead, false

答案1

得分: 1

你需要使用 Object.is 来区分正零和负零之间的差异:

console.log(Object.is(-16 % 2, +0)) // false
console.log(Object.is(-16 % 2, -0)) // true
英文:

You need Object.is if you want to tell the difference between positive and negative zeroes:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

console.log(Object.is(-16 % 2, +0)) // false
console.log(Object.is(-16 % 2, -0)) // true

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年5月24日 17:15:58
  • 转载请务必保留本文链接:https://go.coder-hub.com/76321909.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定