如何在目标-c/可可触摸模除?

我有两个 CGFloat 值,想要计算模结果。或者换句话说: 我想知道如果 valueA 尽可能多地放入 valueB,那么剩下的是什么。

所以我就试着:

CGFloat moduloResult = valueB % valueA;

编译器抱怨% 并告诉我: “对二进制% 的操作数无效”。有什么办法吗?

89840 次浏览

% 是 intlong,而不是 floatdouble

您可以从 <math.h>改为使用 fmod()fmodf()

更好的是 <tgmath.h>作为 由 CGFloat 的发明者建议的

如果我没记错的话,模需要2整数作为它的输入,所以你需要这样的东西:

CGFloat moduloResult = (float)((int)valueB % (int)valueA);

假设 valueB 和 valueA 都是浮点数