Converting Float to String and Character Array in a Few Simple Steps - Arduino

68,794

19

3

About: I am an electrical engineer and an Arduino and electronics enthusiasts. I believe working with electricity should be fun as well as beneficial to engineers and the world at large. Twitter handle: @arduinoha...

Do you want to convert an floating point value to a string? If that is so, then there are two methods that i found really helpful.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Float to String Using Dtostrf

dtostrf is a function that converts a float or double into a character array using only one line of code

dtostrf(float, minimum width, precision, character array);

You also need to include the stdlib.h library for this function to work. However, in my case it worked with or without including the library.

Here is the code to show you how to do that.

Step 2: Improvised Function

I realized that dtostrf does not work with all arduino based boards. For instance, when using the rfDuino i got an error:

Infinite_Delay_revision.ino: In function 'void RFduinoBLE_onReceive(char*, int)':
Infinite_Delay_revision:93: error: 'dtostrf' was not declared in this scope

So, i decided to create a function that extracts the decimal part of the floating point number and parses it on as an integer. Then I combined the string equivalent of the whole part and the string equivalent of the decimal part with a full stop at the center.

The code is attached below.

It works for both floats and doubles. For more information visit the link below.

Converting float to string

1 Person Made This Project!

Recommendations

  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

3 Discussions

0
None
泳志葉

3 years ago

dtostrf.ino: In function 'void setup()':

dtostrf.ino:9:34: error: 'dtostrf' was not declared in this scope

1 reply
0
None
tasercake泳志葉

Reply 3 years ago

have you imported the required library?

You need to add the following line at the beginning of your code for this to work:

#include<stdlib.h>

0
None
wilgubeast

5 years ago on Introduction

Not everyone will find this useful. But those that do will find it VERY helpful. Thanks for sharing!