2016-11-05 5 views
-4

다음 코드를 실행하면 "암시 적으로 'float 유형'을 'int'로 변환 할 수 없습니다."라는 오류가 발생합니다.암시 적으로 형식 'float'을 'int'로 변환 할 수 없습니다.

나는 많은 검색을 수행했으며, 슬프게도 그러한 오류에 대한 도움을 찾을 수 없었습니다. 당신은 변경 SUM1 중 하나가 부동 소수점 수, 또는을로 당신의 식을 캐스팅 할 수

sum1 = (h - ((cols) * x) + twoEnds))/(cols + 1) 

:

int sum1, cols, rows; 

float h, twoEnds, x; 

sum1 = (h - ((cols) * x) + twoEnds))/(cols + 1); 
+2

', 그때'c'와'C++ '태그에 대한 이유는 무엇인가 .' C#을 사용하고있어 명심? –

+0

'int'에 캐스트 :'sum1 = (int) ((h - .../(cols + 1)) ' –

+0

float에서 int에 암묵적인 변환이 없습니다. – Rahul

답변

1

오류가 분명히

을두고3210

암시 그래서 당신은 유형 int이다 sum1에 내재적으로 변환 할 수없는 float 결과가 'INT'

에 유형 '부동'을 변환 할 수 없습니다. 캐스팅/변환 시도 명시 적으로 :

sum1 = (int) ((h - ((cols) * x) + twoEnds))/(cols + 1)); 
2
h 이후

, twoEndsx 모든 수레이며, 다음 방정식은 float를 반환합니다 과 같이 값 int :

sum1 = (int)((h - ((cols) * x) + twoEnds))/(cols + 1)); 
관련 문제