我正在尝试为iOS制作一个倒数计时器,当我尝试使其下降0.10时,当我按照8.2,8.1运行程序时,它开始打印像这样的7.900000000,7.800000012。
而且它应该停在0但
但是当它降低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()
}
}
答案 0 :(得分:1)
您实际上看到了浮点数格式化方式的影响。您可以在the other question rmaddy pointed you to中了解更多相关信息。
我怀疑你最想要很好地格式化那个标签。在这种情况下,您可以执行以下操作:
secs.text = String(format:"%.1f", secs)
你替换" .1"在你想要的十进制数之后有很多地方。