add precision function