I'm glad it worked.
As far as I know the arduino cannot drive a USB as a master, so it will not be able to write to a thumb drive. On the forums there are numerous posts about writing to a SD card, and there is a library for that. I've not tried it.
What I have done with an arduino as a data logger is use hyperterminal on the computer to receive the data from the arduino, and capture that to a file.
As for printing the float with 3 decimal places, this might work:
// prints a float with 3 decimal places
void print_float(float f)
{
long intpart = (long) f; // get the integer part of number
long frac 1000.0 * (f - float(intpart));
Serial.print(intpart);
Serial.print('.');
Serial.print(frac);
}