Charles Bell is correct. Floating point output from sprintf() is not implemented by the Arduino IDE environment. This was apparently done to save program space.
You may find this thread and the pages it links to helpful http://forum.arduino.cc/index.php?topic=125946.0