how to remove difference error of .1e^-16
Show older comments
I am working on a program where I am concatenating a number(say 0.3654) after converting it to binary with other bits and then retrieving the same number later on ... when I compare these two numbers it gives an error difference of .111e^-15 which is although very less but it is affecting the results. All the numbers I m dealing with are decimal numbers (0.54354, 0.44362 applying ceil,floor, round is not working.)...can anyone please help to remove the error.
3 Comments
José-Luis
on 22 Aug 2017
Well, floating point numbers might not have an exact representation in binary and the operations you describe might change its actual value.
Moreover, if your problem is numerically unstable, you'll end up with junk in the end.
What is it you are trying to achieve? It is difficult for us to help you with more details.
A generic answer would be to use some tolerance when comparing for equality. You could have a look at the eps() function.
"I am concatenating a number(say 0.3654).."
Most likely you aren't. You are probably concatenating the closest binary equivalent to the decimal value 0.3654. This is not a bug in MATLAB, this is simply a side-effect of how floating point numbers are stored in binary:
etc., etc.
"can anyone please help to remove the error."
You need to design your algorithm to take floating-point error into account.
Answers (0)
Categories
Find more on Logical 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!