두 개의 CGFloat 값이 있고 모듈로 결과를 계산하고 싶습니다. 즉, valueA가 valueB에 가능한 많이 배치되면 남은 것이 무엇인지 알고 싶습니다.
그래서 방금 시도했습니다.
CGFloat moduloResult = valueB % valueA;
컴파일러는 %에 대해 불평하고 "이진 %에 대한 유효하지 않은 피연산자"라고 말합니다. 어떤 생각?
두 개의 CGFloat 값이 있고 모듈로 결과를 계산하고 싶습니다. 즉, valueA가 valueB에 가능한 많이 배치되면 남은 것이 무엇인지 알고 싶습니다.
그래서 방금 시도했습니다.
CGFloat moduloResult = valueB % valueA;
컴파일러는 %에 대해 불평하고 "이진 %에 대한 유효하지 않은 피연산자"라고 말합니다. 어떤 생각?
답변:
%는 intor long, not floator double입니다.
당신은 사용할 수 있습니다 fmod()또는 fmodf()에서 <math.h>대신.
CGFloat의 발명가가 제안한<tgmath.h> 대로 더 좋습니다 .
tgmath.h"type generic"(따라서 "tg")이므로 math.h입력 유형에 따라 호출 할 함수를 결정 합니다. (예를 들어, 호출 floor(x)에 tgmath.h포함하는 것은 (에서 호출 math.h) floorf(x)하는 경우 xA는 float, floor(x)경우 xA는 double, 또는 floorl(x)경우에 xA는 long double.)