Equality operator error with exact same value
    6 views (last 30 days)
  
       Show older comments
    
    Glenn Franco Gacal
 on 13 Apr 2022
  
    
    
    
    
    Commented: Steven Lord
    
      
 on 14 Apr 2022
            I have the following code and it presents a bug:
data = 22.7:0.1:24.2; TEMP(1) = 23.1;
if TEMP(1) == data(5)
    3-2 %this is only sample effect
else
    5-2 %this is only sample effect
end
This outputs
3
But if I use 
if TEMP(1) == 23.1
    3-2 %this is only sample effect
else
    5-2 %this is only sample effect
end
This outputs
1
You can see from the "data" matrix that data(5) is 23.1.
What kind of bug is this and how can I avoid this kind of bug in the future? I've tried 2 different PCs with different MATLAB versions and they both have the same problem.
0 Comments
Accepted Answer
  Steven Lord
    
      
 on 13 Apr 2022
        This is not a bug. See the section "Avoiding Common Problems with Floating-Point Arithmetic" on this documentation page.
2 Comments
  Steven Lord
    
      
 on 14 Apr 2022
				No need to apologize. You aren't the first person to encounter this behavior (it's a common enough question that our documentation staff created a documentation page for it, after all) and you almost certainly won't be the last. 
More Answers (0)
See Also
Categories
				Find more on Matrices and Arrays in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
