2010-07-07 11 views
23

Come si converte una stringa in float in Objective-C?Converti una stringa in float in Objective-C

Sto provando a moltiplicare un paio di stringhe che sto ottenendo indietro da JSON:

float subTotal = [[[[purchaseOrderItemsJSON objectAtIndex:i] objectAtIndex:j] objectForKey:@"Price"] floatValue]; 

NSLog(@"%@",subTotal); 

Questo mi dà: (null) nella console. So che esiste una stringa valida che esce da quell'array perché lo sto già usando per mostrare il suo valore in un'etichetta.

risposta

64
your_float = [your_string floatValue]; 

EDIT:

provare questo:

NSLog(@"float value is: %f", your_float); 
+0

float subtotale = [[[[purchaseOrderItemsJSON objectAtIndex: i] objectAtIndex: j] objectForKey: @ "Price"] floatValue]; NSLog (@ "% @", subTotal); Questo mi dà un (nulla) sulla console. So che c'è un valore di stringa in là. – Slee

+1

@Max, puoi provare a stampare quella stringa e incollarla qui? –

+0

è: 3399 e l'output risulta essere: (null) – Slee

15

Il modo corretto per farlo è

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle; 

float value = [numberFormatter numberFromString:@"32.12"].floatValue; 
+4

:-) +1 per aver tentato di spostare l'oceano. – Benjohn