Как преобразовать Char в Float

Как преобразовать значение беззнакового символа в число с плавающей запятой или двойное число в кодировании в студии AVR 4.?

Пожалуйста, помогите, я новичок, мой вопрос тоже может показаться глупым :/

Как будто у меня есть char keyPressed

и я напечатал его на экране, используя lcd_gotoxy(0,0); lcd_puts (нажатие клавиши);

Теперь я хочу использовать это значение для вычисления чего-либо. Как преобразовать его в float или double? пожалуйста помоги


person Mohit Goyal    schedule 28.08.2013    source источник
comment
Почему float или double вместо int?   -  person Uchia Itachi    schedule 28.08.2013
comment
потому что мне нужны десятичные значения, например, 14,6433   -  person Mohit Goyal    schedule 28.08.2013
comment
Эта проблема была решена, спасибо всем. Пожалуйста, перейдите к новой проблеме :) in-avr" title="как сохранить число в десятичном формате в avr"> stackoverflow.com/questions/18506198/   -  person Mohit Goyal    schedule 29.08.2013


Ответы (2)


если вы хотите, например, символ «a» как 65.0 в float, то способ сделать это

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

если вы хотите, например, символ «9» как 9.0 в float, то способ сделать это

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/

person Himanshu Pandey    schedule 28.08.2013
comment
Спасибо за ответ. Но мое значение char не является постоянным, оно подается каждый раз с помощью клавиатуры.. скажем, это 16,853. Теперь я хочу преобразовать это в число с плавающей запятой или двойное число для дальнейшего использования.. :/ - person Mohit Goyal; 28.08.2013
comment
Это не char, а set of characters - person Uchia Itachi; 28.08.2013
comment
Вы путаете char с символьной строкой. Найдите atof (но сначала посмотрите, как использовать строки в C). - person Jongware; 28.08.2013
comment
Да, извините, это строка символов - person Mohit Goyal; 28.08.2013
comment
Что ж, моя настоящая проблема здесь. com/questions/18490942/ Никто не ответил на это, поэтому я пытался сделать шаг за шагом - person Mohit Goyal; 28.08.2013

Для ввода массива символов вы можете использовать atof.

person Don't You Worry Child    schedule 28.08.2013