uvision 5 : can not printf "float"

I am working with the C8051F580 using a custom board.

I use UART0 to communicate with TERATERM. 115200 bps

I am using printf to send characters to TERATERM

for decimal printing works fine: printf ("%d",(samples[i]*5)/100);

but if I change it to float it displays "???" : printf ("%3.6f",(samples[i]*5)/100);

"samples" is unsigned int

any suggestion will be appreciated

Thank you.

Fausto Bartra