What every programmer should know about floating-point arithmetic