Please attach your latest code. To Nick's point, it does indeed sound as you're not printing the same thing to serial as you are to the SD card - add some serial prints at the point you write to the card to prove it to yourself.
You mentioned sprintf earlier - the version the arduino uses doesn't handle floats. You can use dtostrf to do the conversion if necessary.