in reply to When < isn't less than

When run, some values get shifted down, others are placed in appropriate bins. So far, I am concerned with the < operator because it shows for example, that 0.99 is < 0.99.

What it is actually showing is that

(0.9 + 0.01 + 0.01 + ... + 0.01) < 0.99
Welcome to the wild, wacky world of imprecise floating point representation. The problem, or one of them, is that the numbers you're using (other than 1.0) don't have precise counterparts in the internal floating point representation that chips use to represent real numbers. When you start adding them, the imprecision gets more noticeable.

If you're concerned, you might be able to scale your data up by 100x, then scale back when its time to display the buckets.