2017-09-15 10 views
0

で0として私がなぜ、この印刷0がする0.75から1.2510進値を設定スウィフト

let incomeCalc = Decimal((arc4random_uniform(50)+75)/100) 
print("incomeCalc") 
print(incomeCalc) 

にランダム小数を取得しようとしていますか?

答えて

1

arc4random_uniform整数型を返すように整数型を返します。あなたは浮動小数点演算をしている必要があります。あなたは分裂を行う前に、あなたのDecimalイニシャライザに渡された二重結果を得​​る値をキャストすることによって

let incomeCalc = Decimal(Double((arc4random_uniform(50)+75))/100) 

それともあなたが行うことができます:

除算が行われる前に Decimalを作成
let incomeCalc = Decimal((arc4random_uniform(50)+75))/100 

+0

で除算」incomeCalc = 10進((arc4random_uniform(50)75みよう))/ 100 "これはうまくいっていますか? – Siyavash

+0

はい、それは良い解決策です。 'Decimal'を75〜125の範囲で取得し、その結果を100で割ってください。 – rmaddy

+0

ありがとうございます、私はこれをできるだけ早く正しいとマークします。 –

1

あなたはまた、75の間の乱数を取得し、それ以下のコードを使用することができます - 125をして、私はこの行をテストしている100

let incomeCalc = Decimal((arc4random_uniform(50)+75))/100 
print("incomeCalc") 
print(incomeCalc)