Double, float et long déclaration
Je voudrais savoir pourquoi en Java, il donne une erreur de compilation en effectuant les opérations suivantes:
double d34324.34; //error
float f3342.34; //error
D'autre part:
long L32423424; //works fine
double D32432424; //works fine
Donc, fondamentalement, je voudrais savoir pourquoi il y a une limitation de l'utilisation de la syntaxe que pour les valeurs à virgule flottante.
Je suis conscient que si l'identificateur de lettre (D,D,F,f) est mis à la fin du numéro, il fonctionne, mais je voudrais savoir pourquoi les autres le formulaire ne fonctionne pas avec floating points.
Juste de la curiosité, je sais que si je tape 3443.43434 f il fonctionne.
- Parce que la langue est définie.
double d = 1.3; float f = 1.3f;
- Parce qu'il traite de "L32423424" comme le NOM de la variable, pas sa valeur.
Vous devez vous connecter pour publier un commentaire.
n'attribue pas une valeur de
34324.34
mais essaie de déclarer une variable avec le nom non valided4324.34
.Que vous avez probablement envie
Un point n'est pas un caractère valide pour un identificateur (un nom de variable, une méthode nom de, nom de classe, un nom de paramètre, etc.) C'est à droite dans la section §3.8 de la Java Langage de Spécification. Donc cela ne marchera jamais:
Un identifiant valide Java ne peut contenir que des lettres, des chiffres, des "_" et "$", et il ne doit pas commencer par un chiffre. Remarquez que ce qui exclut les points.
Et pourquoi voudriez-vous le nom d'une variable avec un nombre? êtes-vous sûr de ne pas dire quelque chose comme cela, à la place?:
C'est parce que c'est une défaillance de la déclaration de la variable (erreur de syntaxe) - peut uniquement contenir des lettres, des chiffres, et des caractères de soulignement; et ne peut pas démarrer w/un certain nombre
Voir ce à apprendre à propos de la valide les noms de variables en java
Si la Valeur est de savoir si le flot ou double à identigy la JVM en utilisant le numéro de fin avec-d-f. Par exemple
Je pense . est la cause de l'erreur.
Grâce