8

我有一个存储为双精度的 NSTimeInterval。我想使用 % 运算符获取第二个值内的分钟数。

minutes = secondValue % 60;

分钟被宣布为double minutes

结果是 XCode 说“二进制 % 的操作数无效”

想法?

4

3 回答 3

13

来自 C 标准,第6.5.5 节乘法运算符,第 2 段:

运算符的操作数%应为整数类型。

于 2010-09-16T22:05:34.310 回答
12

OP改变了他们的问题,所以这是我的新答案:

你想做minutes = floor(secondsValue) / 60; 你想要 int 除法,而不是模数。

于 2010-09-16T22:04:11.013 回答
4

如果 secondValue 是 float 或 double,则可以使用 C 类型转换:

minutes = ((int)secondValue) % 60;

编辑:

(如果 secondValue 太大而无法放入 int 中,这将不起作用。因此您需要知道您的值的范围是否合适。)

于 2010-09-16T22:07:51.630 回答