2013-08-28 10 views
5

Wie konvertiert man einen unsigned char-Wert in einen Float oder double in der Codierung in AVR Studio 4.?Wie man Char in Float umwandelt

Bitte helfen Ich bin ein Anfänger, meine Frage dumm klingen mag:/

Wie ich bekam haben ein char KeyPressed

und ich habe es auf dem Bildschirm gedruckt mit lcd_gotoxy (0,0) ; lcd_puts (keyPressed);

Jetzt möchte ich diesen Wert verwenden, um etwas zu berechnen. Wie konvertiert man es in float oder double? bitte helfen

+0

Warum 'float' oder' double' anstelle von 'int'? –

+2

weil ich Dezimalwerte wie 14,6433 –

+0

brauche Dieses Problem wurde thanx alle gelöst .. Bitte verschieben Sie das neue Problem :) http://stackoverflow.com/questions/18506198/how-to-store-a- number-in-decimal-format-in-avr –

Antwort

8

, wenn Sie zum Beispiel Zeichen wollen ‚a‘ als 65,0 in float dann die Art und Weise, dies zu tun ist

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

, wenn Sie zum Beispiel Zeichen wollen ‚9‘ als 9.0 in float dann dem Weg zu Dazu ist

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

, wenn Sie Zeichen-Array enthält Zahl konvertieren möchten, hier zu schwimmen ist der Weg

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

für mehr siehe Link: http://en.cppreference.com/w/cpp/string/basic_string/stof http://www.cplusplus.com/reference/string/stof/

+0

Danke für die Antwort .. Aber meine char-Wert ist nicht konstant, es wird jedes Mal mit einer Tastatur zugeführt .. sagen, es ist 16.853 Jetzt möchte ich dies in konvertieren ein float oder double zur weiteren Verwendung .. :/ –

+0

Das ist kein 'char', sondern ein' Zeichensatz' –

+1

Sie verwechseln "a char" mit einem Zeichen * string *. Nachschlagen 'atof' (aber zuerst nachschlagen" wie man Zeichenfolgen in C verwendet). – usr2564301

1

Für Eingabezeichenfeld können Sie atof verwenden.