This is something very low-level. It has to do with the IEEE representation of a float/double. One thing you might try is multiplying each number by one hundred, using
integer, perform your calculation, and dividing back by one hundred. You might also try a different rounding mechanism such as
POSIX::ceil or
floor. Only use the number of digits of precision you need, "convert" that into an integer, perform the addition, and "convert" back.
What I don't understand is your title. If you start with floats, then you'll end with floats.
AgentM Systems nor Nasca Enterprises nor
Bone::Easy nor Macperl is responsible for the
comments made by
AgentM. Remember, you can build any logical system with NOR.