2013-07-30 1 views
0

Так же, как название: как я могу изменить строку @ «$ 123,4» в значение флоат 123,4 в прошивкой

NSString *string = @"$123.4"; 

Любая помощь будет оценена. Спасибо заранее.

Giki

+3

'float price = [[string substringFromIndex: 1] floatValue];'. Кроме того, почему тег 'NSScanner'? –

+1

Альтернатива для управляющих памятью: 'float price = strtof (string.UTF8String + 1, NULL);' –

+0

@ H2CO3 благодарит много. – Giki

ответ

1

Как видно с @ H2C03

float price = [[string substringFromIndex:1] floatValue]; 

Надеется, что это помогает!

3

@ H2CO3 умный ответ, но я пробовал это последнее.

NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init]; 
formatter.numberStyle = NSNumberFormatterCurrencyStyle; 
formatter.currencyCode = @"USD";  
float value = [[formatter numberFromString: @"$123.45"] floatValue]; 

NSLog(@"%f",value); 
+0

это работает хорошо, но @ user2277872 трюк не удастся, если в индексе нет или нет 0 (например, NSString * string = @ "$ 123.4";) так +1 к вам бит-биткер – Suryakant

+0

@SuryakantSharma Исправлено, 1 пробел может изменить результат. – Buntylm

+0

@SuryakantSharma, я не давал ответа, я передавал ответ из комментария в вопросе, потому что это был хороший ответ. – user2277872