Why are you typecasting to long? VData.AP is in float so why not leave it this way? If you want to have more control upon the number of decimal places in float try this: lcd.print(VData.Ap,2); where 2 is number of decimal places. If you want none, use: lcd.print(VData.Ap,0); Also, if you wish I can send you my function I use to format altitudes with proper handling of meters, kilometers, megameters etc. It displays a value and a unit.