我有两个CGFloat值,并想计算模结果。或者换句话说:我想知道如果将valueA尽可能多地放入valueB中还剩下什么。
所以我只是尝试:
CGFloat moduloResult = valueB % valueA;
编译器抱怨%,并告诉我:“二进制%的操作数无效”。任何的想法?
我有两个CGFloat值,并想计算模结果。或者换句话说:我想知道如果将valueA尽可能多地放入valueB中还剩下什么。
所以我只是尝试:
CGFloat moduloResult = valueB % valueA;
编译器抱怨%,并告诉我:“二进制%的操作数无效”。任何的想法?
Answers:
tgmath.h
是“泛型类型”(因此称为“ tg”),因此将math.h
根据给定的输入类型来决定调用哪个函数。(例如,floor(x)
使用tgmath.h
include进行呼叫会从(math.h
)调用,floorf(x)
如果x
是float
,floor(x)
如果x
是double
或floorl(x)
如果x
是long double
。)
如果我没记错的话,模数需要2个整数作为其输入,所以您将需要:
CGFloat moduloResult = (float)((int)valueB % (int)valueA);
假设valueB和valueA都是浮点数