Représentant les valeurs flottantes en Java
Regard sur les trois lignes de code ci-dessous.
float f = 1;
float g = 1.1;
float h = 1.1f;
Deuxième ligne a des erreurs de compilation, tandis que les autres lignes n'ont pas les erreurs de compilation. La première ligne fonctionne très bien sans suffixe f et de la troisième ligne est de travailler avec le suffixe f. Pourquoi est-ce?
OriginalL'auteur Abhishek Jain | 2010-06-13
Vous devez vous connecter pour publier un commentaire.
Virgule flottante littéraux en Java est un
double
valeur par défaut.Vous ne pouvez pas affecter un
double
de la valeur à unfloat
sans explicitement un rétrécissement de conversion. Vous avez donc deux options:f
ouF
pour désigner unfloat
valeur(float)
Un exemple de ce dernier est:
Sur l'élargissement des conversions
La raison pour laquelle cette compile:
est parce que l'élargissement de conversion de
int
àfloat
peut être fait implicitement dans le cadre d'une cession.Autre type de données suffixe pour les littéraux
Comme mentionné ci-dessus, il y a aussi le
D
oud
suffixe pourdouble
. Considérons cet extrait par exemple:Il y a aussi un suffixe pour
long
littéraux, qui estL
oul
(lettre minuscule). Il est fortement recommandé que vous utilisez les majuscules variante.OriginalL'auteur polygenelubricants
Vous êtes l'affectation d'un
double
de la valeur à unfloat
variable.1.1
par lui-même (sans lef
cloué sur la fin) qui est utilisé par le compilateur pour être de typedouble
. Le compilateur n'aime pas faire implicite downcasts car il y a du potentiel là pour perdre de la précision.double
par défaut, sauf si elles incluent laf
sur la fin ce qui les rendfloat
.)OriginalL'auteur Bill the Lizard
Première ligne autocasts int en float (ok).
Deuxième ligne ne peuvent pas chasser double flotter à cause de la perte de précision. Vous avez à jeter:
Troisième ligne, n'a pas besoin de convertir.
OriginalL'auteur Arne Deutsch
En Java, chaque nombre à virgule flottante (n'importe quel nombre avec une virgule) la valeur par défaut d'un
double
, qui est plus précis qu'unfloat
. Et par défaut, Java ne vous permet pas de convertir undouble
à unfloat
en raison de la perte de précision.Vous pouvez toujours affecter une
double
à unfloat
par casting:OriginalL'auteur Justin Ardini