Why is this if statement does not work?
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Cantor Set
 el 20 de Feb. de 2020
  
    
    
    
    
    Editada: madhan ravi
      
      
 el 20 de Feb. de 2020
            if (oval1x ~= sObjVal1(1) || oval1x ~= sObjVal1(end))
    cd=1;
else
    cd=Inf;
end
it happened that oval1x=4.2139; and sObjVal1(1)=4.2139; but the loop did not work correctly
Edit: is there a way to correct this issue?
0 comentarios
Respuesta aceptada
  madhan ravi
      
      
 el 20 de Feb. de 2020
        
      Editada: madhan ravi
      
      
 el 20 de Feb. de 2020
  
      Because they are float numbers, reading the below links might help you better about floating numbers:
You could add tolerance to satisfy the conditions , search inside the forum with the tag "floating point" you would find lots of explanations about it. 
2 comentarios
  madhan ravi
      
      
 el 20 de Feb. de 2020
				
      Editada: madhan ravi
      
      
 el 20 de Feb. de 2020
  
			because maybe oval1x is not exactly 4.2139 if you use sprintf('%.32f',oval1x) you could see that its not exactly the same value as you think.
An example to illustrate:
>> x = 1.24213
x =
    1.2421
>> x == 1.2421 % false
ans =
  logical
   0
>> (x - 1.2421) < 1e-4 % true where 1e-4 is the tolerance
ans =
  logical
   1
>> 
Más respuestas (0)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

