Swift If语句不';他似乎工作不正常
我有两个变量,一个是速度,一个是最小值。将速度与最小值进行比较,以查看速度是否应继续降低。出于某种原因,即使速度等于最小值,它也会继续降低速度Swift If语句不';他似乎工作不正常,swift,if-statement,sprite-kit,Swift,If Statement,Sprite Kit,我有两个变量,一个是速度,一个是最小值。将速度与最小值进行比较,以查看速度是否应继续降低。出于某种原因,即使速度等于最小值,它也会继续降低速度 var wallSpeed : CGFloat! var wallSpeedMin : CGFloat! var wallSpeedChange : CGFloat! override init(){ wallSpeed = 0.0035 wallSpeedMin = 0.0034 w
var wallSpeed : CGFloat!
var wallSpeedMin : CGFloat!
var wallSpeedChange : CGFloat!
override init(){
wallSpeed = 0.0035
wallSpeedMin = 0.0034
wallSpeedChange = 0.0001
}
最低速度接近测试目的的速度
if wallSpeed > wallSpeedMin
{
print("Wall speed has been increased")
wallSpeed = wallSpeed - wallSpeedChange
print("New speed is \(wallSpeed!)")
}else
{
print("Player moved up screen")
//Move player up instead
playerNode.position.y = playerNode.position.y + 5
print("Players Y value is \(playerNode.position.y)")
}
即使墙速度等于第一次降低后的墙速度最小值,它也不会命中else语句
我的if语句是否设置不正确?是什么导致了这种行为?浮点数学的工作方式与您期望的不一样。勾选“您不能像这样比较浮点数… 由于浮点数的表示方式,我们不能简单地对它们进行数学运算 当我们使用整数时,它们直接以二进制格式表示,您可以对它们进行任何算术计算,而浮点数是32位容器,遵循IEEE 754标准,分为三部分: 1位S表示该标志 指数为8位 尾数是23位 有关更多信息和