Lorsque je donne Je ne comprends pas ce qui se passe. Quelqu'un peut-il aider? P> tailleOf (a) code>, où
a = 13.33 code>, une variable de flotteur, la taille est de 4 octets.
Mais si je donne
tailleof (13.33) code> directement, la taille est de 8 octets. P>
5 Réponses :
Le littéral 13.33 est traité comme une valeur de point flottante à double précision, 8 octets large. P>
Pour marquer explicitement un nombre littéral en tant que flotteur de précision unique, essayez 13.33f code>.
Taille de (13.33F) Code> Retourne le 4 attendu.
Le 13.33 littéral est traité comme «double», pas «flotteur». P>
essayer 13.33f à la place. p>
parce que 13.33 code> est un
double code>, qui est tronqué à un
float code> si vous l'attribuez. Et un
double code> est 8Bytes. Pour créer un véritable flotteur, utilisez
13.33f code> (notez le
f code>). P>
Ce sont les règles de la langue. P>
13.33 est un littéral numérique. Il est traité comme un double parce que c'est un double. Si vous voulez que 13.33 soit traité comme littéral float, vous indiquez 13.33f. P>
13.33 est un double littéral. Si la taille de (float) == 4, Tailleof (13.33F) == 4 devrait également être maintenue car 13.33F est un littéral flottant. P>
Le type et la taille de votre variable sont bien. C'est juste que le compilateur a quelques types par défaut pour les littéraux, ces valeurs constantes codées rigoureuses dans votre programme strong>. Si vous demandez Vous pouvez remplacer ce comportement par défaut. Par exemple: p> acclamations! P> p> Tailleof (1) Code>, vous Obtenez
Tailleof (int) code>. Si vous demandez
Tailleof (2.5) Code>, vous obtiendrez
Tailleof (double) code>. Celles-ci s'intégreraient respectivement dans un char et un float, mais le compilateur a des types par défaut pour vos littéraux et les traitera comme tel jusqu'à l'attribution. P>
Mec, arrêtez d'ajouter et de supprimer la balise
math code> pour cogner cette question au sommet.
essayez plutôt 13.ft et renvoyez également ce lien Stackoverflow.com/Questtions/2331751/...
Pourquoi la valeur du point flottant telle que 3.14 est considérée comme double par défaut dans MSVC?