Определение количества десятичных чисел для валюты - PullRequest
3 голосов
/ 12 июля 2009

На iPhone:

Using the US locale, a currency looks like this: $1,234.56
Using the UK locale, a currency looks like this: £1,234.56
Using the German (Germany) locale, a currency looks like this: 1.234,56 €

and finally, a Japanese currency: ¥1,234

В японской валюте нет десятичных знаков, и это существенно влияет на мою пользовательскую клавиатуру. Я пытаюсь найти метод в среде Cocoa-touch, который скажет мне, сколько десятичных разрядов имеет конкретная валюта - мое жестко закодированное значение 2 не оправдывает меня

Может кто-нибудь помочь?

Ответы [ 4 ]

2 голосов
/ 14 июля 2009

Я не программировал в Какао целую вечность, но из документации для NSNumberFormatter есть функция с именем 'currencyDecimalSeparator' - которая может, по крайней мере, сказать вам, есть ли у валюты единица вообще, что может быть началом?

2 голосов
/ 15 июля 2009

Вы должны иметь возможность использовать объекты CFNumberFormatter для получения необходимой информации. В частности, вы можете использовать CFNumberFormatterGetDecimalInfoForCurrencyCode:

CFStringRef localeIdent = CFSTR("JPY");

int numDecimals;
double rounding;
BOOL result = CFNumberFormatterGetDecimalInfoForCurrencyCode(localeIdent, &numDecimals, &rounding);

Надеюсь, это поможет.

0 голосов
/ 02 июня 2011

У меня была похожая проблема, но ответы, приведенные выше, действительно не решили мою проблему.

В итоге я использовал метод MaximumFractionDigits в NSNumberFormatter, который дал мне 0 для японского языка. Убедитесь, что вы используете NSNumberFormatterCurrencyStyle для средства форматирования, в противном случае вы увидите десятичные разряды в других средствах форматирования.

    NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
    [currencyFormatter setLocale:[NSLocale currentLocale]];
    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

    NSLog(@"Number of decimal places %i", [currencyFormatter maximumFractionDigits]);
0 голосов
/ 12 июля 2009

Финансовые компании ведут базы данных такого рода информации. Возможно, вы сможете купить данные или импортировать их из онлайн-источника.

Обратите внимание: некоторым валютам требуется три или четыре знака после запятой. См. http://www.londonfx.co.uk/ccylist.html для примеров.

...