Objective-C: как отформатировать строку как $ Price

Является ли их встроенным способом форматирования строки как цена $, например. 12345.45 преобразовано в $12,345.45?


person Mustafa    schedule 21.11.2009    source источник
comment
Какой тип держит номер?   -  person outis    schedule 21.11.2009


Ответы (3)


Предполагая, что вы используете Cocoa (или просто Foundation), вы можете использовать NSNumberFormatter и установить его стиль в валюте:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
... = [formatter stringFromNumber:number];

По умолчанию используется локаль вашей системы, но вы можете изменить это и множество других свойств, см. NSNumberFormatter API-документы.

person Rhult    schedule 21.11.2009
comment
Я понял это самостоятельно. В любом случае спасибо :). - person Mustafa; 21.11.2009

Предполагая, что цена удерживается в плавающем состоянии, вы, вероятно, захотите +localizedStringWithFormat:.

NSString *priceString = [NSString localizedStringWithFormat:@"$ %'.2f",price];

Хммм... Apple говорит, что они следуют стандарту IEEE для printf, поэтому он должен принять флаг ', но он не работает на Tiger. NSNumberFormatter это.

person outis    schedule 21.11.2009
comment
Хорошо, лучше, чем бла-бла-бла предыдущие ответы! :) - person orafaelreis; 26.01.2014

Вам нужно избавиться от символа '

Итак, просто имейте это:

NSString *priceString = [NSString localizedStringWithFormat:@"$ %.2f", price];
person user2053111    schedule 08.02.2013