views:

64

answers:

3

I have an NSTimeInterval that is stored as a double. I would like to get the amount of minutes that are inide of the second value using the % operator.

minutes = secondValue % 60;

where minutes is declared as double minutes

The result is that XCode says "Invalid operands to binary %"

Thoughts?

+5  A: 

The OP changed their question, so here is my new answer:

You want to do minutes = floor(secondsValue) / 60; You want int division, not modulus.

Jon Rodriguez
@Jon - you fixed one modulo divide - but, does your suggested code make sense?
martin clayton
Is that better?
Jon Rodriguez
@jon ... it's certainly shorter!
martin clayton
+4  A: 

From the C standard, section 6.5.5 Multiplicative operators, paragraph 2:

The operands of the % operator shall have integer type.

Carl Norum
A: 

If secondValue is a float or double, you can use C type casting:

minutes = ((int)secondValue) % 60;

EDIT:

(If secondValue is too big to fit in an int, this won't work. So you need to know that the range of your value is appropriate.)

hotpaw2