我希望能够在 swift 中测试零是正数还是负数。
let neg: CGFloat = -0
let pos: CGFloat = +0
if pos == neg {
// this gets executed, but I don't want this
}
上面的代码不能像我需要的那样工作,有人可以帮助我吗?
谢谢;)
最佳答案
有“负零”和“正零” float 。
您可以通过检查 .sign
属性来消除它们的歧义,但是它们
(有意地)比较相等:
let neg: CGFloat = -0.0
let pos: CGFloat = +0.0
print(neg.sign) // minus
print(pos.sign) // plus
print(neg == pos) // true
if (neg == pos && neg.sign == pos.sign) {
// This is not executed.
}
请注意,您必须使用浮点文字(“-0.0”或“+0.0”) 在初始化中。整数文字(“+0”,“-0”)相等 并转换为正零。
关于ios - 如何将负零与正零分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52983262/