如何在 AVR studio 4 中将 unsigned char 值转换为 float 或 double 编码?
请帮助我是初学者,我的问题听起来也很愚蠢:/
就像我有一个 char keyPressed
我已经使用 lcd_gotoxy(0,0) 将它打印在屏幕上;lcd_puts (keyPressed);
现在我想用这个值来计算一些东西。如何将它转换成浮点数或双精度数?请帮忙
如何在 AVR studio 4 中将 unsigned char 值转换为 float 或 double 编码?
请帮助我是初学者,我的问题听起来也很愚蠢:/
就像我有一个 char keyPressed
我已经使用 lcd_gotoxy(0,0) 将它打印在屏幕上;lcd_puts (keyPressed);
现在我想用这个值来计算一些东西。如何将它转换成浮点数或双精度数?请帮忙
如果你想在浮点数中将字符'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.
如果您想将包含数字的字符数组转换为浮点数,这是一种方式
#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/
对于字符数组输入,您可以使用atof
.