11
votes

taille de flotteur (3.0) vs (3.0f)

Quelle est la différence entre la taille de la taille de (3.0) et la taille de (3.0f)

Je m'attendais à ce qu'ils donnent le même résultat (taille de flotteur). Mais c'est différent.

en machine 32 bits, compilateur GCC, tailleof (3.0f) => 4 tailleof (3.0) => 8

pourquoi donc?


0 commentaires

3 Réponses :


24
votes

car 3.0 est un double. Voir C Types de points flottants de la syntaxe C .

Les constantes de point flottant peuvent être Écrit en notation décimale, par exemple. 1.23. La notation scientifique peut être utilisée en ajoutant E ou E suivi d'une décimale Exponent, par exemple 1.23E2 (qui a le valeur 123). Soit un point décimal ou Un exposant est requis (sinon, Le nombre est une constante entière). C99 introduit hexadécimal constantes de point flottant, qui suivent règles similaires sauf qu'ils doivent être préfixé par 0x et utilisez p pour spécifier un Exposant hexadécimal. À la fois décimale et Constantes à point flottante hexadécimales peut être suffixé par F ou F pour indiquer une constante de type float, par l ou l à indiquer le double double double, ou gauche non remboursé pour une double constante.


1 commentaires

Les constantes de point flottantes décimales et hexadécimales peuvent être suffixées par F ou F pour indiquer une constante de type float, par L ou L pour indiquer le double double de type, ou laissé sans remboursement d'une double constante. => c'est trop vite pour obtenir une réponse ici :)



10
votes

0 commentaires

6
votes

3.0 est un double , pas un float .

doubles sont deux fois plus larges que float s.

edit : 3.0d est uniquement en C #


2 commentaires

Il n'y a pas de suffixe de point flottant ('L' et 'l' donner de long doubles, 'F' et 'F' donner un flotteur et l'absence d'un suffixe donne un double)


Dans ieee754 double est deux fois plus large que float ; C ne nécessite cependant pas IEEE754.