2013-12-17 7 views
1

Мне нужно знать, как использовать ICU4C версии 52 C API для отображения символа валюты и кода валюты. т. е. ($ - USD)Отобразить символ валюты локали с использованием API ICU C?

+0

На самом деле я не эксперт C. У меня есть программа, использующая ICU4J для отображения всей информации о локалях. Валюта/формат даты и времени/да и без строк ... и т. Д. Мне нужно что-то подобное с C API. –

+0

У меня есть исходный код ICU и построены его тесты, но вы не можете найти правильный метод для использования. –

+0

Вы пробовали посмотреть [документацию] (http://www.icu-project.org/apiref/icu4c/)? –

ответ

0

Возможно, существует несколько способов, как это сделать. Вот один, что я думаю, что должен работать (непроверенные):

Get the number format и format the value using it:

UErrorCode success = U_ZERO_ERROR; 
UNumberFormat *nf; 
const char* myLocale = "fr_FR"; 

// get locale specific number format 
nf = unum_open(UNUM_CURRENCY, myLocale, success); 

// use it to format the value 
UChar buf[100]; 
unum_formatDouble (nf, 10.0, buf, 100, NULL, &success); 

// close the format handle 
unum_close(nf); 
+0

Как распечатать код валюты и сам символ без форматирования числа? –

+0

@AyaR .: вы можете получить код ISO валюты из локали, используя ['unum_getTextAttribute'] (http://www.icu-project.org/apiref/icu4c/unum_8h.html#a497b8a591fbac7c2d2e604f06a403be1) с помощью [' UNUM_CURRENCY_CODE'] (http://www.icu-project.org/apiref/icu4c/unum_8h.html#a9d3fc41af40c7a4437230943eb265725). Я не вижу способа получить национальный символ, фактически не форматируя его. – wilx

0

Или, более непосредственно, используйте ucurr_getName() с селектором UCURR_SYMBOL_NAME. Вы также можете использовать ucurr_forLocale() или ucurr_forLocaleAndDate(), чтобы получить код валюты без форматирования. Обратите внимание, что для языкового стандарта может быть несколько валют.

Смежные вопросы