Sembra che NSNumberFormatter non possa analizzare stringhe di valuta Euro (e probabilmente altre) in un tipo numerico. Qualcuno può per favore dimostrare che ho torto.Utilizzo di NSNumberFormatter per ottenere un valore decimale da una stringa di valuta internazionale
che sto tentando di utilizzare il seguente per ottenere una quantità numerica da una stringa di valuta:
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *currencyNumber = [currencyFormatter numberFromString:currencyString];
Questo funziona bene per il Regno Unito e degli Stati Uniti importi in valuta. Si occupa anche di separatori $ e £ e migliaia senza problemi.
Tuttavia, quando lo uso con importi in valuta euro (con il formato della regione impostato su Francia o Germania nell'app delle impostazioni) restituisce una stringa vuota. Tutti i seguenti stringhe falliscono:
12,34 €
12,34
12.345,67 €
12.345,67
Vale la pena notare che queste stringhe corrispondono esattamente quello che viene fuori il metodo stringFromNumber del NSNumberFormatter quando si utilizza il locale corrispondente.
Impostazione del formato Regione per la Francia in app Impostazioni, quindi impostando currencyNumber al 12.34 nel seguente codice, si traduce in currencyString essere impostato '12, 34 €':
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *currencyString = [currencyFormatter stringFromNumber:currencyNumber];
Sarebbe ovviamente abbastanza È facile aggirare questo problema specificamente per l'euro, ma spero di vendere questa app nel maggior numero possibile di paesi e penso che una situazione simile si verificherà con altri locali.
Qualcuno ha una risposta?
TIA, Duncan
Non ho ancora trovato una soluzione, quindi qualsiasi input sarebbe molto apprezzato. Grazie, Duncan – pieSquared
Suggerirei di presentare una segnalazione di errore. –