Josh Haberman: What every computer programmer should know about floating point, part 1