【问题标题】:How to convert Char into Float如何将字符转换为浮点数
【发布时间】:2013-08-31 21:35:20
【问题描述】:

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

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

就像我按下了一个字符键

我已经使用 lcd_gotoxy(0,0); lcd_puts (keyPressed);

现在我想用这个值来计算一些东西.. 如何将其转换为浮点数或双精度数?请帮忙

【问题讨论】:

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


【解决方案1】:

如果您希望例如字符“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/

【讨论】:

  • 感谢您的回复.. 但是我的 char 值不是恒定的,每次使用键盘都会输入它.. 说它是 16.853 现在我想将其转换为浮点数或双精度以使用进一步.. :/
  • 那不是char,而是set of characters
  • 您将“a char”与字符 string 混淆了。查找atof(但首先查找“如何在 C 中使用字符串)。
  • 是的,对不起,这是一个字符串
  • 好吧,我的实际问题在这里..stackoverflow.com/questions/18490942/… 没有人回复它,所以我试图一步一步地做
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-11-25
    • 2018-02-15
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    相关资源
    最近更新 更多