2010-02-14 7 views

Répondre

-2
Decimal decimalNumber = 1234; 
Float binaryFloatValue = decimalNumber; 
+0

La question est étiquetée C++. – AndiDog

+0

Ensuite, je laisserai à quelqu'un d'autre de traduire les types dans le C –

+0

C++ n'a pas _have_ un type décimal. Je ne suis pas sûr de C, mais ce n'est pas non plus la question. – MSalters

0

En supposant que vous voulez dire une décimale stockée dans une chaîne, atof serait une solution standard pour convertir en une valeur double (qui est un nombre à virgule flottante 64 bits sur l'architecture x86).

std::string s = "0.4"; 
double convertedValue = atof(s.c_str()); 

Ou similaire pour les chaînes C:

const char *s = "0.4"; 
double convertedValue = atof(s); 

Mais si vous voulez dire nombre entier par "nombre décimal", puis il suffit d'écrire

int yourNumber = 100; 
double convertedValue = yourNumber; 

et la valeur sera automatiquement convertie.

0

La conversion de valeur d'une chaîne en double peut être implémentée par boost :: lexical_cast. type coulée de int doubler est une partie de C++:

double d = (double)i; 

Il a déjà été mentionné dans les réponses précédentes. Si vous souhaitez savoir comment cette distribution est implémentée, vous pouvez vous référer aux sources de la bibliothèque standard C que votre compilateur utilise, étant donné que les sources sont fournies et qu'aucun coprocesseur à virgule flottante n'est utilisé à cette fin. De nombreux compilateurs cibles intégrés effectuent ce travail "manuellement" si aucun coprocesseur à virgule flottante n'est disponible.

Pour la description du format binaire, s'il vous plaît voir la réponse de Victor

Questions connexes