fix precision issue