use decimal instead of defaul float