To round or not to round… [Software]

posted by ElMaestro  – Denmark, 2019-07-20 19:59 (548 d 02:53 ago) – Posting: # 20415
Views: 5,925

Hi Hötzi,

» I don’t know which kind of measurements you are comparing.

It stinks but there really is no good solution when you have to compare.
(294.1/1000) == 0.2941
[1] FALSE
(2941/10000) == 0.2941
[1] TRUE


One can read ISO standards and manuals about internal float representation (I tried andfell asleep), but at the end of the day if you need to compare you need to compare and hope for the best. Some numbers just cannot be represented accurately in binary.

If you accept an xyz fraction of error on the comparison then the solution is straightforward, like

Match = function (x,y, relative.tol)
{
 if (y<((1+relative.tol)*x))
  if (y>((1-relative.tol)*x))
    return(T)
 return(F)
}

Match(6, 6.001, 0.01)


Ugly as hell :vomit:, and will not work well if you get into extreme binary representations.

Pass or fail!
ElMaestro

Complete thread:

Activity
 Admin contact
21,303 posts in 4,441 threads, 1,487 registered users;
online 10 (0 registered, 10 guests [including 5 identified bots]).
Forum time: Monday 21:53 CET (Europe/Vienna)

I believe there is no philosophical high-road in science,
with epistemological signposts. No, we are in a jungle
and find our way by trial and error,
building our road behind us as we proceed.    Max Born

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5