0

これは説明できません。同じ値を持つ 2 つの変数がありますが、それらは同一ではありません。ここで何が欠けているのか誰か教えてもらえますか?

>> y
y =
3.4000
>> x
x =
3.4000
>> y==x
ans =
 0
>> whos x
 Name      Size            Bytes  Class     Attributes
 x         1x1                 8  double              
>> whos y
 Name      Size            Bytes  Class     Attributes
 y         1x1                 8  double   

それは私にとって本当に不可解であり、冗談ではないことを誓います.

4

2 に答える 2

5

これは浮動小数点の精度によるものです。試す

format long g

そして、何度も見てxくださいyx-y浮動小数点数で等値テストを行うよりも、いくつかの小さな許容値と比較する方がよい

于 2013-07-26T09:25:31.120 に答える
3

浮動小数点値を比較しています。これは、コンピューターによる浮動小数点値の処理方法が原因で、基本的にどの言語でも、あなたが考えているようには機能しません。

これに対する解決策は、通常、代わりに、値間の差が小さなしきい値よりも小さいかどうかをテストすることです。

これに関する Matlab 関連の議論については、こちらを参照してください。

于 2013-07-26T09:26:01.070 に答える