Round with awk

Hi, I have a problem. Basically I dont know how to use awk. I have a script (below) which works fine.

What I want to do is somehow "pipe" in the input say 4.5 and have it give the anwer, I dont want ot have to type it in, since it will be running in a script.

Any ideas how to do this????

# round.awk --- do normal rounding

 function round\(x,   ival, aval, fraction\)
 \{
    ival = int\(x\)    \# integer part, int\(\) truncates

    \# see if fractional part
    if \(ival == x\)   \# no fraction
       return x

    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
    \}
 \}


 \# test harness
 \{ print round\($0\)
    exit 1

}

Another way instead of a function to accomplish this:

echo "4.5" | awk '{printf("%d\n",$0+=$0<0?-0.5:0.5)}'

Regards