Very simple 'if' statement with == operator not working

I have some very basic logic that is not working. It's a simple 'if' statement with an '==' operator. Please help.
Program:
%simple_script.m
clear all
A = 0.40;
B = 0.20;
C = 0.60;
D = A + B;
if C == D
disp('It worked.')
else
disp('It did not work.')
end
Command Window:
>> simple_script
It did not work.
>>

 Respuesta aceptada

Star Strider
Star Strider el 22 de Dic. de 2017

3 votos

Welcome to the apparent inconsistencies of floating-point calculations. See the discussion in Why is 0.3 - 0.2 - 0.1 (or similar) not equal to zero? (link) for more informaiton.
Floating point approximations are similar in this regard to decimal 1/3 being approximated as 0.3333... Multiplying by 3 then gives 0.9999..., not 1.

2 comentarios

Graham
Graham el 22 de Dic. de 2017
Thanks!
My pleasure!
A further illustration:
Test = C - D
Test =
-1.110223024625157e-16

Iniciar sesión para comentar.

Más respuestas (1)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Dic. de 2017

Comentada:

el 22 de Dic. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by