Je vais avoir du mal avecComment créer un environnement local personnalisé avec une valeur NSDecimalSeparator personnalisée?
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString locale:(NSDictionary *)locale
Parce que je veux fournir des valeurs de très haute précision par programmation de ne pas avoir des erreurs à virgule flottante au départ, la pomme me donne la seule option de compter sur un lieu bancal.
Ainsi, la documentation dit assez chiffré:
Paramètres: ... locale Un dictionnaire qui définit les paramètres régionaux (en particulier le NSDecimalSeparator) à utiliser pour interpréter le nombre dans NumericString.
Discussion Le paramètre locale détermine si le NSDecimalSeparator est une période (comme il est utilisé, par exemple, en aux États-Unis) ou une virgule (comme utilisé, par exemple, en France).
bien, après avoir cherché NSDecimalSeparator dans les documents, rien trouvé. Recherche sur le net, a constaté que cette chose est "obsolète". Donc, actuellement, je fais quelque chose de dangereux comme ceci:
NSLocale *usLoc = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSDecimalNumber *num = [NSDecimalNumber decimalNumberWithString:str locale:usLoc];
Alors je me demande: S'ils ont vraiment besoin de ce lieu bancal pour quelque chose de crucial comme celui-ci (j'ajouter des chaînes par programmation, aucune entrée d'utilisateur), je ne pourrais pas créer en quelque sorte un propre lieu? Ce paramètre nécessite un NSDictionary, donc l'idée:
Puis-je créer un NSMutableDictionary à partir de ce dictionnaire local qui vient pour -initWithLocaleIdentifier: @ "en_US", puis éditer ce%? & §! Champ NSDecimalSeparator?
Et une autre chose qui soulève mes maux de tête: Pourquoi le paramètre demande un NSDictionary, où je dois passer un objet NSLocale? Ou mon code est-il faux? (non testé, puisque mon application est actuellement complètement foirée ;-))
aucune réponse à cette question? J'ai une question similaire sur la création du NSDictionary qui doit tenir et NSLocale – Meltemi