Unusual symbols after lcd.print();

In trying to include a function to read a BH1750 Light sensing module in my greenhouse controller I am getting two strange symbols after the final lcd.print command and so have to add two more lines to get rid of them. It’s not pretty!

The code for the function is:

[/

void light(){
 uint16_t lux = lightMeter.readLightLevel();
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  lcd.setCursor(12,1);
  lcd.print("       ");
  lcd.setCursor(12,1);
  lcd.print("Lux");
  lcd.print(lux);
  //lcd.setCursor(0,3);
  //lcd.print("                    ");
}    //end of light

code]

I attach a drawing of the symbols. Has anyone any idea what they mean and why they are appearing? The LCD is 20x4 on the I2C bus)

What if you add base to variable print, like rhis :

lcd.print(lux, DEC);

Allso , check this :

lcd.setCursor(12,1);
  lcd.print("       ");
  lcd.setCursor(12,1);

Why do you set cursor twice to the same place ?

  lcd.print(lux);

Does lux really need to be unsigned? Does casting the value to an int make any difference?

waski: lcd.setCursor(12,1);   lcd.print("      ");   lcd.setCursor(12,1);

Why do you set cursor twice to the same place ?

Obviously to clear the LCD from (12,1) for 6? characters and reset the cursor position back to the beginning of the cleared space, ready for the next print.