0
我想從0.75隨機小數1.25十進制值設置爲0斯威夫特
let incomeCalc = Decimal((arc4random_uniform(50)+75)/100)
print("incomeCalc")
print(incomeCalc)
爲什麼這個打印0?
我想從0.75隨機小數1.25十進制值設置爲0斯威夫特
let incomeCalc = Decimal((arc4random_uniform(50)+75)/100)
print("incomeCalc")
print(incomeCalc)
爲什麼這個打印0?
arc4random_uniform
返回一個整數類型,所以你正在做整數數學。你需要做浮點數學。
let incomeCalc = Decimal(Double((arc4random_uniform(50)+75))/100)
通過你做除法之前鑄造的價值,你會得到它傳遞到您的Decimal
初始化一個雙重結果。
或者,你可以這樣做:
let incomeCalc = Decimal((arc4random_uniform(50)+75))/100
分工完成之前它創建Decimal
。
也可以使用低於此得到75之間的隨機數的代碼 - 125,然後通過100
let incomeCalc = Decimal((arc4random_uniform(50)+75))/100
print("incomeCalc")
print(incomeCalc)
我已經測試這一行分頻,「讓incomeCalc =十進制((arc4random_uniform(50)75 ))/ 100 「它工作,這有什麼不對嗎? – Siyavash
是的,這是另一個很好的解決方案。獲得75到125範圍內的「十進制」,然後將結果除以100. – rmaddy
謝謝,一旦它允許我將它標記爲正確。 –