problem with low infinite number
    4 ビュー (過去 30 日間)
  
       古いコメントを表示
    
 Ediff(8,35)
 ans =
   7.4525e+03
 profit(8,35)
ans =
   7.4525e+03  
 bu=minus(profit,Ediff);
 bu(8,35)
ans =
   1.8190e-12
   Why does subtracting 2 equal numbers produce a very small number?
回答 (2 件)
  the cyclist
      
      
 2024 年 3 月 3 日
        
      編集済み: the cyclist
      
      
 2024 年 3 月 3 日
  
      You can see that they are not quite equal:
load("matlab_Ediff.mat","Ediff");
load("matlab_profit.mat","profit");
fprintf("Ediff = %16.14f\n",Ediff(8,35))
fprintf("profit = %16.14f",profit(8,35))
0 件のコメント
  John D'Errico
      
      
 2024 年 3 月 3 日
        They only look the same, to 4 decimal places. 
format short
x = 1.23456789;
y = 1.23456987;
[x,y]
They certainly look the same to me. But only if I don't look at their actual values, down to the last digits. If I subtract them of course, they are seen to be different.
x - y
Surely you would expect the difference to be non-zero, even though, when displayed as only 5 dignificant digits, they seem identical?
format long
[x,y]
0 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Logical についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


