2017-02-23 6 views
0

を印刷なぜそれが私が印刷するときということです:スウィフトCEILは

buildingConstants.jitterClickConstantCost = 1
print((buildingConstants.jitterClickConstantCost * 11)/10) 

私は

print(ceil(Double((buildingConstants.jitterClickConstantCost * 11)/10))) 
を印刷する場合、私は(予想される)

> 1 

を得る。しかし

(これはプロデュース2)は、生成:

> 0 
+0

問題は、整数で計算してラウンドを変更する前にフラグメントを失っていることです。私はこれを試してみましょう。変数が二重であることを確認してください。 'debugPrint(ceil(Double(buildingConstants.jitterClickConstantCost)* 11.0)/10.0))' – holex

答えて

1

あなたは答えがintとして返されますので、コンパイラは、のIntする10の推測されて10で割ます。あなたが10.0で割った場合、それは必要に応じて動作します。以下は、Swiftプレイグラウンドを使用した2.0の出力を示したものです。

let x = Double((1 * 11)/10.0) 
    print(ceil(x))