当试图倒数0.10时,打印错误的东西

时间:2017-04-20 01:17:19

标签: ios swift timer

我正在尝试为iOS制作一个倒数计时器,当我尝试使其下降0.10时,当我按照8.2,8.1运行程序时,它开始打印像这样的7.900000000,7.800000012。

Here what it prints

而且它应该停在0但

stops here

但是当它降低0.25或0.5或1时,它的效果非常好。

这是我的代码。

var seconds = 10.0
var timer = Timer()

@IBAction func startPressed(_ sender: Any) {
    startBtn.isHidden = true
    clickedTxt.isHidden = false
    numClicked.isHidden = false
    tapView.isEnabled = true
    timerTxt.isHidden = false
    secs.isHidden = false

    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.counter), userInfo: nil, repeats: true)
}

func counter()
{
    if(seconds > 0.0)
    {
        seconds -= 0.1
        secs.text = "\(seconds)"
    } else {
        timer.invalidate()
    }
}

1 个答案:

答案 0 :(得分:1)

您实际上看到了浮点数格式化方式的影响。您可以在the other question rmaddy pointed you to中了解更多相关信息。

我怀疑你最想要很好地格式化那个标签。在这种情况下,您可以执行以下操作:

secs.text = String(format:"%.1f", secs)

你替换" .1"在你想要的十进制数之后有很多地方。