J'ai un plist (créé en XCode) avec un tableau complet de "Numbers" (0.01, 1, 2, 6) qui se décompresse en NSValues lorsqu'il est reconstitué avec initWithContentsOfFile. Comment puis-je transformer ces NSValues en NSDecimalNumbers que je peux utiliser pour additionner? Ils seront traités comme des valeurs monétaires et ne nécessitent donc qu'une précision de 2 (peut-être 4) décimales.Convertir NSValue en NSDecimalNumber
J'ai essayé d'enregistrer les valeurs de plist comme "String" au lieu de "Number" et en utilisant initWithString de NSDecimalNumber pour définir la valeur, mais NSValue ne répond pas à stringValue.
On dirait que gérer des nombres est particulièrement déroutant dans Cocoa. tant de formats de conteneurs dans tant de frameworks ... :-(
L'approche multiplier par 100 est idéale pour les devises MOST mais elle n'est pas universelle. Je suppose que je pourrais obtenir le maximumFractionDigits de NSNumberFormatter pour les paramètres régionaux en cours et ensuite multiplier mon entier par 10^maxDigits. Pourtant, dans cette ère moderne de l'informatique, il ne semble pas que ce soit difficile/déroutant de manipuler quelque chose d'aussi commun que la monnaie ... – Meltemi
Vous avez un point, ce serait bien si ce n'était pas déroutant. Cependant, en tant que problème binaire/décimal, je ne vois pas un moyen facile à contourner à moins que nous passions notre argent à binaire. :-) –