Getting wrong results while calling a function.
1 view (last 30 days)
I have written a simple function. It takes two inputs, only when two inputs are equal the output should be zero.
function I = getI(E,Eg)
if (E<=1.5) && (E ~= Eg)
elseif (E>1.5) && (E<=4) && (E ~= Eg)
Now the function works as expected most of times,but when the value of Eg is 1.38,1.39,1.4, 2.84 or 2.6 the code doesnot gives I=0 even when the value of Eg is equal to E. Example:
I tried changing the if conditions, changing their positions. No change.
Rik on 2 Sep 2021
Some numbers cannot be represented exactly in binary. You will either need to round both numbers to make sure they have the exact same representation, or compare the differences to a tolerance.