Adding zero padding to decimal values
This looks like a rounding problem. If the number you want to print lies
within the open interval (9.95, 10), the condition value &lt; 10 is true,
as the number is strictly less than 10. Obviously, value != 10 is also
true. Yet, lcd.print(x, 1) will round the number to the closest
multiple of 0.1, which in this case is 10.
I see no better solution than handling the rounding yourself. I would
use integers for the comparison, as they avoid all rounding issues:
// Print a float to the LCD in 2.1 format (xx.x), left padded with a
// zero if needed. Assume x &lt; 100.
void printPadded(float x)
{
    // Left pad.
    int i = round(x * 10);
    if (i &lt; 100) lcd.write('0');

    // Print the rounded value.
    lcd.print(i * 0.1, 1);
}