How to convert Char into Float

68,345

Solution 1

if you want for example character 'a' as 65.0 in float then the way to do this is

unsigned char c='a';
float f=(float)(c);//by explicit casting
float fc=c;//compiler implicitly convert char into float.

if you want for example character '9' as 9.0 in float then the way to do this is

unsigned char c='9';
float f=(float)(c-'0');//by explicit casting
float fc=c-'0';//compiler implicitly convert char into float.

if you want to convert character array containing number to float here is the way

#include<string>
#include<stdio.h>
#include<stdlib.h>
void fun(){
unsigned char* fc="34.45";
//c++ way
std::string fs(fc);
float f=std::stof(fs);//this is much better way to do it
//c way
float fr=atof(fc); //this is a c way to do it
}

for more refer to link: http://en.cppreference.com/w/cpp/string/basic_string/stof http://www.cplusplus.com/reference/string/stof/

Solution 2

For character array input you can use atof.

Share:
68,345
Mohit Goyal
Author by

Mohit Goyal

Software Engineer | Traveller | R | Java MongoDB | Machine Learning

Updated on July 05, 2022

Comments

  • Mohit Goyal
    Mohit Goyal almost 2 years

    How to convert an unsigned char value into a float or double in coding in AVR studio 4.?

    Please help I am a beginner, my question may sound stupid too :/

    Like I have got a char keyPressed

    and I have printed it on the screen using lcd_gotoxy(0,0); lcd_puts (keyPressed);

    Now I want to use this value to calculate something.. How to convert it into float or double? please help