Hmm. then could you not use an Int64 and multiply by 1000 or 10000 or whatever and just divide it whenever you call a gl(real, pain, here) and then compare them headache free beacuse they are Integers? An Int64 gives plenty of working space. Thats −9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 or any 18 digit number either side the decimal point with 92% of 19 digit numbers covered Tell me if you run wont you?