fix floating point error