displaying numerical values with decimal point

What is the correct way to write numerical values on a display with a fixed decimal point position?

TempIn2C and TempIn3C are defined as a float used by the Dallas library

lcd.setCursor(16,2);
lcd.print (TempIn2C,1); //solar temperature
lcd.setCursor(16,3);
lcd.print (TempIn3C,1); //system temperature

When a temperature drops below 10.0 the displayed value shifts one position to the left. How can that be avoided?

if (TempIn2C < 10)
  lcd.print (" ");
lcd.print (TempIn2C,1);

What about the minus sign?

It doesn't get that cold here.

AWOL:
It doesn't get that cold here.

Because it's the Dallas library?

Thank you AWOL. I was hoping for a more structural solution but this certainly works.

A subzero temperature screws things up badly. A haven't actually seem what happens because it happens only in cold nights when the solar collector radiates heat into a clear sky. In the morning there is a 7 in a normally blank space behind the temperature, followed by a decimal point and a 0 as the first two characters on the next line, so the string must have been 5 chars long.

I solved that with a button triggered routine that clears the affected part of the display and rewrites it.

I don't know what you mean by "structural", but you could always try "dtostrf" which, I think, has field width control.