Displaying FLOAT variables in Arduino

Displaying FLOAT variables in Arduino

It seems that the Arduino software doesn't have much support for displaying float variables, certainly the sprintf() function doesn't work.

However there is a useful c function called dtostrf() which will convert a float to a char array so it can then be printed easily

The format is

dtostrf(floatvar, StringLengthIncDecimalPoint, numVarsAfterDecimal, charbuf);


floatvar float variable
StringLengthIncDecimalPoint This is the length of the string that will be created
numVarsAfterDecimal The number of digits after the deimal point to print
charbuf the array to store the results

An example will serve to illustrate the behaviour

static float f_val = 123.6794;
static char outstr[15];

void setup() {
  dtostrf(f_val,7, 3, outstr);


void loop(){

The output of this sketch is


which is 7 characters long, with 3 characters after the decimal point.

So what if f_val had the value 1.6794, what would be the output then? Well, it would still be 7 characters long, with 3 characters after the decimal point, but it would be padded at the beginning with spaces. I.e.


Get the idea?

Shopping Cart
0 items

Free Delivery Orders over £50

UK - £2.40 orders under £50
Airmail from £2.95 (+VAT)
More Details...

 Check out our videos
Follow us on: