2

Perl で奇妙な動作に遭遇しました。次の減算は、結果としてゼロを生成する必要があります (Python ではこれが行われます)。

print 7.6178E-01 - 0.76178
-1.11022302462516e-16

なぜそれが発生し、どのように回避するのですか?

PS Effect は、「x86_64-linux-gnu-thread-multi 用にビルドされた v5.10.0」(Ubuntu 9.04) および「darwin-2level 用にビルドされた v5.8.9」(Mac OS 10.6) で表示されます。

4

1 に答える 1

8

2 進数で表される浮動小数点表記の制限ほど、科学的表記法が精度に影響を与えるわけではありません。perlfaq4への回答を参照してください。これは、数値ストレージの基礎となるアーキテクチャに依存するすべての言語にとって問題です。

より良い数値処理が必要な場合は、bignumプラグマをチェックしてください。

于 2010-01-13T14:04:02.647 に答える