Prova a convertirla senza il metodo doubleValue ne floatValue:

codice:
char* str=[costo UTF8String];
NSLog(@"%f",atof(str) );
Cosa ti stampa?