NSDecimalNumber として格納されている値があり、それを double に変換すると精度が失われます。
現在デバッグしているデータの場合、値は 0.2676655 です。doubleValue メッセージを送信すると、0.267665 が返されます。丸めではなく切り捨てを行っており、ハッシュを使用して同期操作のデータ変更を検出する一部のコードに大混乱をもたらしています。
NSDecimalNumber インスタンスはサードパーティ フレームワークに由来するため、単純にプリミティブ double に置き換えることはできません。最終的には NSMutableString に挿入されるため、文字列表現を求めていますが、「%.6lf」のフォーマット指定子を介して渡す必要があります。基本的には、小数点以下 6 桁が必要なので、0.267666 のようになります。
精度を落とさずにこれを達成するにはどうすればよいですか? double に変換せずに NSDecimalNumber をフォーマットする良い方法があれば、それも機能します。