Python の float (および精度) の基になるデータ構造に関する質問があります。
>>> b = 1.4 + 2.3
>>> b
3.6999999999999997
>>> c = 3.7
>>> c
3.7000000000000002
>>> print b, c
3.7 3.7
>>> b == c
False
b と c の値はマシンに依存しているようです。これらはターゲット値に最も近い数値ですが、まったく同じ数値ではありません。私は、'Print' で '正しい' 数値が得られるように監督されていました。ある人は、Python が私たちに真実を伝えることを選んだのに対し、print は '嘘をついている' ためだと言いました。
私の質問は次のとおり
です。 1.嘘をつく方法は?たとえば、関数では 2 つの値を取り、それらが同じ場合に戻ります。上記のbとcのように?それを行うための明確に定義されたアルゴリズムはありますか?浮動小数点計算が含まれている場合、すべての言語 (C/C++) でこの種の問題が発生すると言われましたが、どのようにこれを「解決」しますか?
2. 最も近い数値を格納する代わりに、実際の数値を格納できないのはなぜですか? それは制限ですか、それとも効率のための取引ですか?
どうもありがとうジョン