2009-08-25 12 views

答えて

1

NSDecimalNumberクラスをさらに正確に見るために、もう1つのコメントによると、不正確な問題が見つかりましたか?また、精度も遅くなります。

+1

より正確ですが、私の限られた数知識。 – jtbandes

+0

数学は数学です。いろいろな程度の(非常に小さくよく定義された)フージングが行われている浮動小数点数とは異なり、結果についてはより正確です。 何か財務的には、何らかの種類の10進数のクラスを使用する方がよいでしょう... –

2

私はlong doubleが限界だと思いますが、本当にあなたがしたいことに依存しています。あなたは実際に不正確な問題にぶつかってきましたか?

+0

よく、理論的に私はやった;-)しかし私は実際にはしたくない。 –

+1

それはどういう意味ですか?理論的には不正確な問題はありません。実際の実装では、不正確さが問題です。 – jprete

+0

無限のメモリを持つコンピュータだけが、任意の実数の正確な値を格納できます。あなたのアプリケーションが任意の数値に対して計算を実行できる場合は、場合によっては精度の低下や無限のメモリを持つマシンを発明することに同意する必要があります; – rpetrich

1

精度を追加することで問題を解決する方法がありますが、ときどき実際の問題(通常は?)は計算を実行する方法にあります。その場合、私は健康的なRTFMを禁止します。 FP算術上の任意の下塗りは、ある種の方程式が悲惨である理由と、忘却のかすみを避ける方法をカバーする。

3

iPhoneハードウェアでlong doubleが単にdoubleとして機能することに注意してください。より大きなタイプからは精度を得ることはできません。シミュレータでは、Mac上で実行しているので、あなたを混乱させる可能性があります。

here(および他のコメント作成者)と同様に、NSDecimalまたはNSDecimalNumberは精度(最大34桁)のための方法であり、これを使用して実行される計算は2進浮動小数点ではなく真の10進数で行われます。これにより、通常のIEEE 754計算で見られる多くのエラーを回避します。

関連する問題