Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift If语句不';他似乎工作不正常_Swift_If Statement_Sprite Kit - Fatal编程技术网

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位

有关更多信息和