Originally Posted By: Sealeopard
Seen those things before, was typically due to an internal conversion of the number to floting point

Agreed, it is not a bug.

You will find this annoyance in common in all (most?) programming languages, and it is caused (as SL says) by the way that floating point numbers are stored, which is an approximation of the real value.

There is a pretty good article here if you want more detail.

I learned this the hard way back in the days i wrote 'C' code, but it applies equally to languages which are further away from the machine code.

It's why when testing a floating point for zero you can never say
 Code:
If $fpNumber = 0


Instead you have to use something like
 Code:
If $fpNumber < 0.001 AND $fpNumber > -0.001


The values that you use for comparison will depend on the scale of your calculations.