Using the sprintf function

KeithRB:
sprintf() on the arduino does not handle floats, so I guess the answer to your question is 42.

Yes it does.
To save space, avr libC has a library without floating point sprintf() support that is used by default.
The IDE uses this default library so the sprintf() linked in doesn't have it.
With Arduino 1.5x you can go in and modify the linker options down in the avr platform.txt
file to use the "normal" full version of sprintf() library instead.
You change this:

compiler.c.elf.flags=-Os -Wl,--gc-sections

to this:

compiler.c.elf.flags=-Os -Wl,--gc-sections -Wl,-u,vfprintf -lprintf_flt

This is a one time "fix".
It does come with the cost of using additional code in flash - about 1.8k or so that you use
even if not using floating point.

--- bill