| # round.awk --- do normal rounding |
| # |
| # Arnold Robbins, arnold@skeeve.com, Public Domain |
| # August, 1996 |
| |
| function round(x, ival, aval, fraction) |
| { |
| ival = int(x) # integer part, int() truncates |
| |
| # see if fractional part |
| if (ival == x) # no fraction |
| return ival # ensure no decimals |
| |
| if (x < 0) { |
| aval = -x # absolute value |
| ival = int(aval) |
| fraction = aval - ival |
| if (fraction >= .5) |
| return int(x) - 1 # -2.5 --> -3 |
| else |
| return int(x) # -2.3 --> -2 |
| } else { |
| fraction = x - ival |
| if (fraction >= .5) |
| return ival + 1 |
| else |
| return ival |
| } |
| } |