2017-02-23 1 views
0

왜 인쇄 할 때하는 것이 그 것이다 : 나는스위프트 천장을 만들다 인쇄

print(ceil(Double((buildingConstants.jitterClickConstantCost * 11)/10))) 
를 인쇄하면 buildingConstants.jitterClickConstantCost = 1

print((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))