2008-10-13 4 views
1

Comment puis-je déterminer si le symbole de devise est censé être à gauche ou à droite d'un nombre à l'aide de CFLocale/CFNumberFormatter dans un projet Mac Carbon?Comment déterminer si le symbole de devise est à gauche ou à droite d'un numéro sur MacOS

Je dois m'interfacer avec un tableur qui nécessite de passer un numéro, un symbole de devise, un emplacement de symbole de devise et un remplissage au lieu d'un CStringRef créé avec CFNumberFormatter.

CFLocaleRef currentLocale = CFLocaleCopyCurrent(); 
CFTypeRef currencySymbol = CFLocaleGetValue (currentLocale, kCFLocaleCurrencySymbol); 

me donne le symbole monétaire comme une chaîne. Mais je suis perdu sur la façon de déterminer la position du symbole monétaire ...

Répondre

2

Pour contourner le problème, j'ai commencé à créer une chaîne représentant une valeur monétaire et à déterminer la position du symbole monétaire en cherchant la chaîne, mais ça a l'air douteux pour moi.

CFNumberFormatterRef numberFormatter = CFNumberFormatterCreate(kCFAllocatorDefault, CFLocaleCopyCurrent(), kCFNumberFormatterCurrencyStyle); 
    double someNumber = 0; 
    CFStringRef asString = CFNumberFormatterCreateStringWithValue(kCFAllocatorDefault, numberFormatter, kCFNumberDoubleType, &someNumber); 

...

Ne hésitez pas à me frapper avec un journal roulé et me dire la vraie réponse ...

0

Vous pouvez essayer d'inspecter la chaîne de format retourné par CFNumberFormatterGetFormat. Il looks like vous voulez rechercher ¤ qui est \u00A4.

Questions connexes