2013-08-28 19 views
5

Jak przekonwertować niepodpisaną wartość char na spoczynkowe lub podwójne w kodowaniu w AVR studio 4.?Jak przekonwertować Char na Float

Proszę o pomoc jestem początkujący, moje pytanie może wydawać się głupie TOO:/

Jak mam char keyPressed

i wydrukowana na ekranie przy użyciu lcd_gotoxy (0,0) ; lcd_puts (keyPressed);

Teraz chcę użyć tej wartości, aby obliczyć coś .. Jak przekonwertować go na zmienną lub podwójną? pomóż

+0

Dlaczego 'float' lub' double' zamiast 'int'? –

+2

ponieważ potrzebuję wartości dziesiętnych np. 14.6433 –

+0

Ten problem został rozwiązany thanx all .. Proszę przejść do nowego problemu :) http://stackoverflow.com/questions/18506198/how-to-storea-a- numer-w-dziesiętnym-formacie-in-avr –

Odpowiedz

8

jeśli chcesz na przykład znak „a” jako 65,0 w obrocie wtedy sposobem na to jest

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

jeśli chcesz na przykład znak „9” jako 9,0 w obrocie następnie drogę do zrobić to

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

jeśli chcesz przekonwertować tablicę znaków zawierający liczbę unosić Oto sposób

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

dłużej patrz link: http://en.cppreference.com/w/cpp/string/basic_string/stof http://www.cplusplus.com/reference/string/stof/

+0

Dzięki za odpowiedź .. Ale moja wartość char nie jest stała, jest podawana za każdym razem za pomocą klawiatury .. powiedzieć, że jest 16.853 Teraz chcę przekonwertować to na float lub double do dalszego wykorzystania. :/ –

+0

To nie jest "char", ale "zestaw znaków" –

+1

Mylicie "znak" znakiem * ciąg *. Poszukaj "atof" (ale najpierw sprawdź "jak używać ciągów w C)." – usr2564301

1

Dla wejścia tablicy znaków można użyć atof.