2010-07-07 22 views
23

¿Cómo convierto una cuerda en un flotador en Objective-C?Convertir cadenas en flotantes en Objective-C

estoy tratando de multiplicar un par de cuerdas que estoy recibiendo de vuelta de JSON:

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

NSLog(@"%@",subTotal); 

Esto me da: (null) en la consola. Sé que hay una cadena válida que sale de esa matriz porque ya la estoy usando para mostrar su valor en una etiqueta.

Respuesta

64
your_float = [your_string floatValue]; 

EDIT:

intente esto:

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

subtotal de flotación = [[[[purchaseOrderItemsJSON objectAtIndex: i] objectAtIndex: j] objectForKey: @ "Price"] floatValue]; NSLog (@ "% @", subtotal); Esto me da una (nula) en la consola. Sé que hay un valor de cadena allí. – Slee

+1

@Max, ¿Puedes intentar imprimir esa cadena y pegarla aquí? –

+0

es: 3399 y la salida termina siendo: (nulo) – Slee

15

La forma correcta de hacer esto es

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

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

:-) +1 por tratar de mover el océano. – Benjohn

Cuestiones relacionadas