我想爲iOS做一個倒計時計時器,當我試圖使它下降0.10和當我運行程序後像8.2,8.1,它開始打印像這樣7.900000000,7.800000012這樣的東西。當試圖通過0.10倒計時它打印錯誤的東西
而且也是它應該停止在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()
}
}
閱讀http://stackoverflow.com/questions/588004/is-floating-point-math-broken?s=1|16.6051 – rmaddy