Thats because %d means an integer. %f means a floating point, however due to the way the arduino compiler is setup, floating point in the **printf functions is disabled.

For 1dp, you can do something like this:

`float time = 0.1;`

int exponent = (int)time; //exponent is the number to the left of the decimal point

time -= (float)exponent; //remove the exponent to leave just the fraction.

int fraction = (int)(time*10.0); //fraction is the 1st number to the right of the decimal point

char timechar[5] = {0};

sprintf(buffer,"%d.%d",exponent,fraction);

uoled.TextGraphic(5,40, 1, 150, 1, 1, timechar, 1);