我有两个CGFloat值,并想计算模结果。或者换句话说:我想知道如果将valueA尽可能多地放入valueB中还剩下什么。
所以我只是尝试:
CGFloat moduloResult = valueB % valueA;
编译器抱怨%,并告诉我:“二进制%的操作数无效”。任何的想法?
我有两个CGFloat值,并想计算模结果。或者换句话说:我想知道如果将valueA尽可能多地放入valueB中还剩下什么。
所以我只是尝试:
CGFloat moduloResult = valueB % valueA;
编译器抱怨%,并告诉我:“二进制%的操作数无效”。任何的想法?
Answers:
tgmath.h是“泛型类型”(因此称为“ tg”),因此将math.h根据给定的输入类型来决定调用哪个函数。(例如,floor(x)使用tgmath.hinclude进行呼叫会从(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都是浮点数