GolfScript - The missing function

55 chars

{~.0<"-"*\abs 10.?..3$@%+`-1%~`)[3-]1$,!!*+-1%@@/\++}:F

Negative numbers are a bit of a pain - responsible for about 13 chars of the 55. Trailing 0s are handled by using a 1 to stand for the decimal point, reversing as a string, converting to an int, and back again, and re-reversing.


50 characters

{..~0<<\~abs`.,11\-,,0`*\++-10/(~.!!\"."+*\+-1%}:F

The most noteworthy trick in this solution is probably -10/, detach the last 10 characters and inverse, so that the trailing 0s can be culled by conversion by conversion to integer.