put_num calls a separate put_double.

Eliminate compilation with -Wconversion because it caused unreasonable,
excessive errors with gcc 4.1.2.