2011-02-09 13 views
7
NSString *timerend = [[NSString alloc] initWithFormat:@"%.0f:%.0f:%02d", hours, minutes, seconds]; 

Quindi ho questa stringa e un mucchio di galleggianti. Ad esempio, diciamo secondi = 6,54. Verrà visualizzato come quello. Voglio che venga visualizzato come 06.54. C'è comunque per farlo? Qualsiasi aiuto sarà molto apprezzato.Formatta un float da visualizzare in una stringa con due cifre?

+0

A dire il vero, non ho capito cosa vuoi. Che formato di tempo stai cercando? Facci un esempio :) –

+1

@kp: check luke answer – KingofBliss

risposta

15

Supponendo che si desidera che il formato 'XX: XX: XX, XX' è possibile utilizzare il seguente codice:

NSString *timerend = [[NSString alloc] initWithFormat:@"%02.0f:%02.0f:%05.2f", hours, minutes, seconds]; 

Durante la formattazione, il numero prima del punto (05) determina il numero minimo di caratteri nell'intera stringa, non solo il bit prima del punto.

+0

Wouldn ' questo rende il formato XX: XX: XXXXX.XX? – Daniel

+0

No. Se controlli il commento,% 05.2f assicura che ci saranno almeno 5 caratteri nella stringa ENTIRE. Quindi, 1,23 = 01,23 (il punto conta come 1 carattere). Se inserisci 12222.123, verrà presentato l'intero numero. Prova il campione, funziona :) – Luke

+0

Grazie per il chiarimento :) – Daniel

0

Un modo per avvicinarsi è disporre di una distinta NSString con contenuto 0 e di aggiungerla con timerend. Potrebbero esserci anche altre soluzioni migliori.

NSString *startTag = @"0"; 
// Your string variable. i.e., timerend 

NSString *newTime = [startTag stringByAppendingString:timerend]; 

Tuttavia, è necessario aggiungere solo quando l'ora è inferiore a 10.

+0

Leggi ancora i quesiti – KingofBliss

+0

@KingofBliss: non capisco male. Se il programmatore ha bisogno di un "0" iniziale, penso che dovrebbe aggiungerlo alla stringa corrente. Cosa pensi che abbia frainteso? Anche se la linea dell'oggetto e la materia presentata sono un po 'confuse. – Mahesh

+0

La tua soluzione aggiungerà anche 0 se il numero è 16, secondo il tuo l'o/p sarà 016 – KingofBliss

Problemi correlati