2010-09-16 7 views
8

Ich habe einen NSTimeInterval, der als Double gespeichert wird. Ich möchte die Anzahl der Minuten, die innerhalb des zweiten Wertes liegen, mit dem Operator% ermitteln.Verwenden des Mod-Operators in der iOS-App

minutes = secondValue % 60; 

wo Minuten als double minutes

Das Ergebnis erklärt wird, ist, dass XCode sagt "Ungültige Operanden binäre%"

Gedanken?

+0

Siehe http://stackoverflow.com/questions/1237778/how-do-i-break-down-an-ndieinterval-into-year -Monate-Tage-Stunden-Minuten-und –

+3

Neben der Modulo zu arbeiten, führt dies nicht zu dem entgegengesetzten Ergebnis dessen, was Sie wollen? Wenn 'secondValue' 123 ist (was zu 2 Minuten, 3 Sekunden funktioniert), ist das Ergebnis von' secondValue% 60' 3. Es scheint, dass dies eine Division sein soll. – Chuck

Antwort

12

Die OP ihre Frage geändert, so ist hier meine neue Antwort:

Sie wollen minutes = floor(secondsValue)/60; Sie wollen int Division tun, nicht Modul.

+0

Sie haben einen Modulo Divide festgelegt - aber, macht Ihr vorgeschlagener Code Sinn? –

+0

Ist das besser? – AlcubierreDrive

+0

.. es ist sicherlich kürzer! –

13

Aus dem C-Standard, Abschnitt 6.5.5 Multiplikativ Betreiber Absatz 2:

Die Operanden des % Luftfahrtunternehmer Integer-Typ haben.

+0

Diese Antwort macht keinen Sinn, da das OP die Frage bearbeitet hat. Ob das ein Grund für einen Downvote ist oder nicht, bin ich mir nicht sicher. –

4

Wenn second ein Schwimmer oder Doppel, können Sie C-Typ Gießen verwenden:

minutes = ((int)secondValue) % 60; 

EDIT:

(Wenn second zu groß ist, in einen int zu passen, wird dies nicht Also müssen Sie wissen, dass der Bereich Ihres Wertes angemessen ist.)

Verwandte Themen