Замените запятую точкой при получении floatvalue NSString
Я хочу, чтобы пользователи могли вводить значения выше 0 на сумму денег в моем приложении. Таким образом, 0,0 или любое представление нуля будет неприемлемым, но 0,1 будет принято, например.
для этого я планировал получить значение float NSString и сравнить его с 0.0, но это не работает, так как наши десятичные числа должны быть разделены запятой, всегда (из-за бизнес-требования). Если запятые были точками, то сравнение делает работа.
какой самый достойный способ заменить запятые точками в моих текстах?
PS: пользователь ограничен вводить только цифры и только одну запятую, для десятичной части. И на самом деле мне было интересно, если это sthg, что можно сделать с номером форматирования или так...
Thx заранее
4 ответов
Вы можете просто использовать stringByReplacingOccurrencesOfString
NSString *newString = [ammount stringByReplacingOccurrencesOfString:@"," withString:@"."];
вот аккуратный способ использовать NSScanner
:
NSScanner *scanner = [NSScanner localizedScannerWithString:theInputString];
float result;
[scanner scanFloat:&result];
Apple рекомендует использовать NSScanner. это код, который я использую:
NSScanner *scanner;
NSLocale *local =[NSLocale currentLocale ];
[scanner setLocale:local];
float result;
scanner = [NSScanner localizedScannerWithString:<YOUR NSString>];
[scanner scanFloat:&result];