fixed float point error