私は、initWithContentsOfFileで再構成したときにNSValuesにアンパックする "Numbers"(0.01、1、2、6)の配列を持つplist(XCodeで作成)を取得しました。これらのNSValuesをNSDecimalNumbersに変換するにはどうしたらいいですか?これらは通貨価値として扱われるので、小数点以下2桁(おそらく4桁)の精度が必要です。NSValueをNSDecimalNumberに変換する
plist値を "Number"ではなく "String"として保存し、NSDecimalNumberのinitWithStringを使用して値を設定しようとしましたが、NSValueはstringValueに応答しません。
数字を扱うように見えますが、特にココアでは混乱します。 :
100倍乗算のアプローチはMOST通貨にとっては優れていますが、普遍的ではありません。現在のロケールのNSNumberFormatterからmaximumFractionDigitsを取得してから、10^maxDigitsで整数を掛けることができると思います。それでも、この現代のコンピューティングでは、通貨と同じように何かを操作するのは難しい/混乱するべきではないようです。 – Meltemi
これは混乱しないといいでしょう。しかし、バイナリ/小数点の問題として、私たちがお金をバイナリに変えない限り、その周りに簡単な方法はありません。 :-) –