more accurate rounding