你好,我做了一個「點擊」作爲第一個項目,同時學習迅疾我有一個應該是從其他數字刪除一些數字,但有時我得到這樣0.600000000000001值的自動計時器,我不知道爲什麼。在越來越怪異值雙
這裏是我的「攻擊」功能,從殭屍的健康刪除0.2。
let fGruppenAttackTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("fGruppenAttackTime"), userInfo: nil, repeats: true)
func fGruppenAttackTime() {
zHealth -= 0.2
if zHealth <= 0 {
zHealth = zSize
pPengar += pPengarut
}
...
}
這裏是我的attackZ
按鈕應該從殭屍的健康除去1
@IBAction func attackZ(sender: UIButton) {
zHealth -= Double(pAttack)
fHunger -= 0.05
fGruppenHunger.progress = Float(fHunger/100)
Actionlbl.text = ""
if zHealth <= 0 {
zHealth = zSize
pPengar += pPengarut
}
}
最後這裏的變量值:
var zHealth = 10.0
var zSize = 10.0
var pAttack = 1
var pPengar = 0
var pPengarut = 1
當定時器在和功能正在運行,我點擊按鈕,我有時會得到奇怪的值,如0.600000000000001,如果我把0.2的功能設置爲0.25我得到0.0999999999999996有點ES。我想知道爲什麼會發生這種情況以及如何處理它。
NSDecimalNumber沒有雙重目前(它的特點是「十進制」或「值」) –
是啊,我們甚至不應該使用'NSDecimalNumber'了,反正。我們使用'Decimal'。我也更新了Swift 3及更高版本的'NumberFormatter'示例。 – Rob
我必須承認我今天使用了NSDecimalNumber,它給出了同樣奇怪的問題。我現在必須嘗試Decimal :-) –