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

有帮助吗?

解决方案

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/

其他提示

For character array input you can use atof.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top