2013-11-08 3 views
0

Мне нужно изменить textfield.text от одного числа к другому, но сохранить региональное использование запятой или периодом для десятичного выпрямителя.Может NSNumberформатровать преобразование числа в строку, заменяющую период запятой, если это необходимо для региона

NSNumberFormatter * NF = [[NSNumberFormatter Alloc] инициализации]; nf.locale = [NSLocale currentLocale]; NSNumber * n = [nf numberFromString: textfield.text]; // преобразует запятую в период, если необходимо

номер плавающего = [n floatValue];

float newnumber = number * factor;

B

Теперь мне нужно перезагрузить в textfield.text новый номер в строку и преобразовать в период запятой, если это предусмотрено в регионе. Другими словами, перепроектировать первый шаг.

NSNumber * n = [номер NSNumberWithFloat: number]; // say number is 17.22000

textfield.text = [nf stringFromNumber: n];

Не работает как усекает до периода «17» Есть ли обратная сторона «A» ??

+0

http://stackoverflow.com/questions/11787759/how-to-properly-format-currency-on-ios here вы идете – amar

+0

@amar, было бы лучше, если вы добавите его как ответ вместо комментария: D – yoninja

+0

@amar, спасибо, это работает: для B [nf setNumberStyle: NSNumberFormatterDecimalStyle]; NSNumber * n = [Номер NSNumberWithFloat: number]; textfield.text = [nf stringFromNumber: n]; – Ancient

ответ

1

Используйте метод localizedStringWithFormat:

NSNumber *yourNumber = [nf numberFromString:yourString]; 
//to create the formatted NSNumber object 

NSString *yourString = [NSString localizedStringWithFormat:@"%.2F", yourNumber]; 
//to create the localized output 

Это покажет разделитель на основе текущей локали.