2013-05-06 11 views
9

Sto provando a realizzare un semplice convertitore di altezza obiettivo-C. L'ingresso è un (float) variabili di piedi, e voglio convertire in piedi (int) e (float) pollici:obiettivo iOS-C: utilizzando modulo su un float per ottenere "pollici" da Piedi

float totalHeight = 5.122222; 
float myFeet = (int) totalHeight; //returns 5 feet 
float myInches = (totalHeight % 12)*12; //should return 0.1222ft, which becomes 1.46in 

Tuttavia, continuo a ricevere un errore dal Xcode, e ho capito che il modulo l'operatore funziona solo con (int) e (long). Qualcuno può consigliare un metodo alternativo? Grazie!

+0

Sì, il modulo funziona solo per numeri interi (non decimali). Proprio come quello che hai fatto, gettalo in numero intero, quindi modulo. – Raptor

risposta

22

opere Anche Modulo per galleggiare, uso:

fmod()

È possibile utilizzare in questo modo anche ...

float totalHeight = 5.122222; 
float myFeet = (int) totalHeight; //returns 5 feet 
float myInches = fmodf(totalHeight, myFeet); 
NSLog(@"%f",myInches); 
+0

Questo è perfetto, grazie. – jake9115

+0

'float myInches = fmodf (totalHeight, myFeet);' Devi moltiplicarlo per 12. – shim

+0

@shim: L'OP non vuole che tutti i piedi siano convertiti in pollici ... Voleva solo una frazione di piedi in pollici, e piedi in numero intero. –

1

Perché non si utilizza

CGFloat myInches = totalHeight - myFeet; 
+0

Sì, è così ovvio! Dovrei usare lo stack overflow alle 3 del mattino. Molte grazie. – jake9115

+0

non si dovrebbe chiedere di accettare la risposta ... se OP piace altri come si otterrà + voti .. :) –

+0

@AnoopVaidya Sì, so a cosa ti riferisci, ma sai che alcuni nuovi arrivati ​​si dimenticano sempre di accettare la risposta . Non ne sono sicuro e ho visto il commento di OP che sembra che la mia risposta abbia risposto alle domande di OP. Quindi aggiungo un promemoria. È chiaro? – sunkehappy

0

Come risposta in precedenza, la sottrazione è la strada da percorrere. Basta ricordare di convertire l'un decimo di piedi in pollici moltiplicando per 12:

float totalHeight = 5.122222; 
int myFeet = (int) totalHeight; 
float myInches = (totalHeight - myFeet) * 12; 
Problemi correlati