lecture de la documentation, je dois faire quelque chose de laid comme ceci:Un moyen facile de nourrir dans un nombre décimal sous forme de chaîne dans un NSDecimalNumber?
NSLocale *usLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"0.00001" locale:usLocale];
Mais: est-ce pas là une plus belle façon de dire que la classe NSDecimalNumber à regarder dehors pour la période au lieu de quoi que ce soit d'autre (.) ? Les locaux me semblent tellement dangereux. Et si un jour un nouveau président pense être si cool de changer le symbole de la période de . à ,? Ensuite, mon application se bloque. Bien sûr, cela n'arrivera pas si probable. Mais il y a une petite chance que cela puisse arriver. Assez pour me faire peur en utilisant une locale pour cela ;-)
Une idée? Ou est-ce ma seule option? Et si c'est la seule option: l'approche ci-dessus est-elle correcte? Ou y a-t-il même un meilleur? Et: Si je comprends bien, l'objet NSDecimalNumber lira cette chaîne, l'analysera et en créera les valeurs mantisse, exponent et isNegative pour usage interne, n'est-ce pas?
EDIT: J'aurais dû mentionner que j'ajoute ces valeurs par programmation/manuellement (dans mon code), ils ne sont pas une entrée utilisateur.
Cependant, vous allez vous exposer à des problèmes potentiels de représentation à virgule flottante dans la dernière implémentation, ce qui pourrait annuler les avantages de travailler avec NSDecimal ou NSDecimalNumber. –
Oui, c'est vrai. C'est pourquoi je veux passer à cette technique d'entrée de chaîne. Quel dommage qu'ils n'aient pas donné l'option de spécifier le char pour le virgule flottante;) je vais m'en tenir à la chose locale de US_us. –