如何将Char转换为Float

时间:2013-08-28 17:14:58

标签: c++ c microcontroller atmega16 avr-studio4

如何在AVR studio 4的编码中将unsigned char值转换为float或double。?

请帮助我是初学者,我的问题也可能听起来很愚蠢:/

就像我有一个char keyPressed

我用它将它打印在屏幕上 lcd_gotoxy(0,0); lcd_puts(keyPressed);

现在我想用这个值来计算一些东西.. 如何将其转换为float或double?请帮忙

2 个答案:

答案 0 :(得分:9)

如果你想在浮动中将字符'a'作为65.0,那么这样做的方法是

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

如果你想在浮动中将字符'9'作为9.0,那么这样做的方法是

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

如果你想将包含数字的字符数组转换为float,这就是

#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
}

更多请参阅链接:http://en.cppreference.com/w/cpp/string/basic_string/stof http://www.cplusplus.com/reference/string/stof/

答案 1 :(得分:2)

对于字符数组输入,您可以使用atof