The float should have about 6 or 7 significant digits. Perhaps you are doing the math wrong. PulseIn() returns an unsigned long. To convert from microseconds to seconds you would divide by 1000000.0. I think that Serial.print() defaults to 2 decimal places. If you want to print more digits, tell print() how many:
Serial.print(floatValue, 6); // Display with 6 digits after that decimal point.