Borrar filtros
Borrar filtros

Equality operator error with exact same value

1 visualización (últimos 30 días)
Glenn Franco Gacal
Glenn Franco Gacal el 13 de Abr. de 2022
Comentada: Steven Lord el 14 de Abr. de 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.

Respuesta aceptada

Steven Lord
Steven Lord el 13 de Abr. de 2022
This is not a bug. See the section "Avoiding Common Problems with Floating-Point Arithmetic" on this documentation page.
  2 comentarios
Glenn Franco Gacal
Glenn Franco Gacal el 14 de Abr. de 2022
Thank you for your clarification and I apologize for this noob dilemma!
Steven Lord
Steven Lord el 14 de Abr. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical 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!

Translated by