1

これは他の何よりもプログラム上の問題であると私は信じているので、私はここでこの質問をしています。

TI-84 Plus Sliver Edition計算機を使用しています。この計算機には、より小さい、より大きい、および等しいかどうかをテストできる論理演算子が含まれています。式を入力すると、次のようになります。

2^34 == 2^34 - 1

それは私に本当の驚くべき1を与えます。私の計算機は2^34の結果を正確に出力できないことは言及する価値があります。むしろ、指数表記と33を超えるその他の累乗を使用します。これはブール出力の潜在的な要因ですか?

さらに、等式テストは、2番目の式が1から9を引いている場合にのみtrueを返します。数値が> = 10の場合、正しくfalseを返します。

丸め誤差でしょうか?この式がtrueを返すのはなぜですか?

4

1 に答える 1

5

電卓は、それほど大きな数を追跡できません。

すべての計算機には、設定されたレベルの精度があります(たとえば、10桁)。電卓が出すすべての答えは、答えがその桁数になるように丸められます。次に、数値を大きくしたり小さくしたりするために、必要なだけ小数点以下の桁数をシフトします(この場合は非常に大きくなります)。

あなたの数は非常に大きいので、1を引くと、10桁目以降に変化が生じます。次に、これは最初に丸められてから比較されます。したがって、当然、それらは同じ数であると見なされます(可能な精度で)。

于 2013-03-13T23:48:51.443 に答える