web-dev-qa-db-ja.com

CharをFloatに変換する方法

AVRスタジオ4のコーディングでunsignedchar値をfloatまたはdoubleに変換する方法は?

私が初心者であるのを手伝ってください、私の質問もばかげているように聞こえるかもしれません:/

私がcharkeyPressedを持っているように

そして、lcd_gotoxy(0,0);を使用して画面に印刷しました。 lcd_puts(keyPressed);

この値を使用して何かを計算したいと思います。floatまたはdoubleに変換する方法は?助けてください

5
Mohit Goyal

たとえば、floatで文字「a」を65.0にしたい場合、これを行う方法は次のとおりです。

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

たとえば、floatで9.0として文字「9」が必要な場合、これを行う方法は次のとおりです。

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/stofhttp://www.cplusplus.com/reference/string/ stof /

11
Himanshu Pandey

文字配列入力には、 atof を使用できます。