سؤال

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