Il apparaît que lorsque vous tapez un nombre en Java, le compilateur le lit automatiquement sous la forme d'un entier, ce qui explique pourquoi lorsque vous tapez 6000000000 (long), il se plaindre que 6000000000 n'est pas un nombre entier. Pour corriger cela, j'ai dû spécifier 6000000000L. Je viens d'apprendre à propos de cette spécification.La spécification du nombre L (long) de Java
Existe-t-il d'autres spécifications de nombre comme pour court, octet, flottant, double? Il semble que ce serait bon d'avoir parce que (je suppose) si vous pouviez spécifier le nombre que vous tapez est un court alors java n'aurait pas à le lancer - c'est une supposition, corrigez-moi si je me trompe . Normalement, je chercherais cette question moi-même, mais je ne sais pas ce que ce genre de spécification de numéro est même appelé.
entrée tardive: suppression de sources potentielles d'ambiguïté est toujours bon, et * Je ne suis pas en désaccord * ... mais je crois que si vous vous trouvez confus avec '1'' l' et '0' avec' O' (et ainsi de suite), votre * priorité * est de définir la police à droite (si vous le pouvez), puis vous soucier de vous assurer de ne pas manquer la touche Maj. – davidcesarino
@SimonNickerson J'ai une question sur les suffixes ... Si je déclare une variable _long_ ou une variable _double_ comme: 'long _lo = 30;' et non '30L' cela signifie-t-il que ma variable sera convertie en _float_? Ou dans le cas de '_lo = _lo + 2.77' que' _lo' sera converti en _float_ bien qu'il ait été déclaré comme _long_ – luigi7up
Non, les flottants ne sont pas impliqués ici. Dans le premier cas, '30' est un' int' qui est automatiquement converti via une conversion élargie en 'long'.Dans le second cas, votre déclaration est illégale. Vous devez explicitement lancer le côté droit à long, par ex. '_lo = (long) (_lo + 2.77)' –