Secondo la documentazione, [NSDecimalNumber decimalNumberWithString:]
dovrebbe utilizzare il separatore locale decimali:NSDecimalNumber decimalNumberWithString: ignora parametri locali
Se il NSDecimalSeparator è un periodo (come viene utilizzato, ad esempio, negli Stati Uniti) o un virgola (come viene utilizzata, ad esempio, in Francia) dipende dalle impostazioni internazionali predefinite.
Ma quando l'ho provato, questo codice:
NSLog(@"%@", [NSDecimalNumber decimalNumberWithString:@"100,1"]);
NSLog(@"%@", [NSDecimalNumber decimalNumberWithString:@"100,1" locale:NSLocale.currentLocale]);
Dà ...
100
100.1
... come uscita su entrambi iOS 5 e iOS 6. Ho provato con svedese e francese come impostazioni regionali poiché entrambi questi paesi usano la virgola (,) come separatore decimale.
L'uscita non dovrebbe essere uguale?
(so che posso usare [NSDecimalNumber decimalNumberWithString: locale:] per forzare il comportamento, in modo da questa domanda non è di trovare un'alternativa, solo se si tratta di un bug o sto facendo qualcosa di sbagliato)
La domanda non riguarda la stampa, riguarda l'analisi. _ "il primo utilizza il formato del numero di default (en_US) per analizzare" _ - La mia domanda è perché en_US è il default quando la mia locale corrente è fr_FR. Quindi quando la documentazione dice che le impostazioni locali predefinite dipendono, quando differisce da en_US se non quando la mia locale corrente è fr_FR? – thejaz
La documentazione non chiarisce che cosa fa diventare una locale la locale 'predefinita', anche se sembra che possa cambiare. Il mio pensiero iniziale era che potrebbe essere correlato al valore impostato per CFBundleDevelopmentRegion che ["Solitamente corrisponde alla lingua nativa dell'autore"] (https://developer.apple.com/library/ios/#documentation/General/Reference /InfoPlistKeyReference/Articles/CoreFoundationKeys.html) ma la modifica di quel valore non sembrava influenzare alcun comportamento. Se l'API o la documentazione non sono chiari, la cosa migliore da fare è [archiviare un radar] (https://bugreport.apple.com). – frozendevil
Ho archiviato un radar di documentazione che consiglio di duplicare (rdar: // 13520160, http://openradar.appspot.com/radar?id=2878409); Ho anche aggiunto un po 'più di informazioni alla mia risposta. – frozendevil