1# round --- do normal rounding 2# 3# Arnold Robbins, arnold@gnu.org, August, 1996 4# Public Domain 5 6function round(x, ival, aval, fraction) 7{ 8 ival = int(x) # integer part, int() truncates 9 10 # see if fractional part 11 if (ival == x) # no fraction 12 return x 13 14 if (x < 0) { 15 aval = -x # absolute value 16 ival = int(aval) 17 fraction = aval - ival 18 if (fraction >= .5) 19 return int(x) - 1 # -2.5 --> -3 20 else 21 return int(x) # -2.3 --> -2 22 } else { 23 fraction = x - ival 24 if (fraction >= .5) 25 return ival + 1 26 else 27 return ival 28 } 29} 30 31# test harness 32{ print $0, round($0) } 33