我希望能够快速测试零是正数还是负数。
let neg: CGFloat = -0
let pos: CGFloat = +0
if pos == neg {
// this gets executed, but I don't want this
}
上面的代码不像我需要的那样工作,有人可以帮助我吗?
谢谢 ;)
我希望能够快速测试零是正数还是负数。
let neg: CGFloat = -0
let pos: CGFloat = +0
if pos == neg {
// this gets executed, but I don't want this
}
上面的代码不像我需要的那样工作,有人可以帮助我吗?
谢谢 ;)
有“负零”和“正零”浮点数。您可以通过检查.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”)相等并转换为正零。