Parece que cuando escribe un número en Java, el compilador lo lee automáticamente como un entero, por lo que cuando escribe (largo) 6000000000 (no en el rango entero) lo hará Quejarse de que 6000000000 no es un número entero. Para corregir esto, tuve que especificar 6000000000L. Acabo de enterarme de esta especificación.Especificación del número L (largo) de Java
¿Hay otras especificaciones de número como short, byte, float, double? Parece que sería bueno tenerlos porque (supongo) si pudieras especificar que el número que estás escribiendo es corto, entonces Java no tendría que lanzarlo, eso es una suposición, corrígeme si me equivoco . Normalmente buscaría esta pregunta yo mismo, pero no sé cómo se llama este tipo de especificación de números.
El ingreso tardío: la eliminación de las posibles fuentes de ambigüedad es siempre bueno, y * No estoy en desacuerdo * ... pero creo que si usted se encuentra confuso '' 1' con l' y '0' con' O' (y así sucesivamente), su * prioridad * es establecer la fuente correcta (si puede), entonces preocúpese de asegurarse de no perder la tecla Shift. – davidcesarino
@SimonNickerson Tengo una pregunta sobre sufijos ... Si declaro una variable _long_ o _double_ como: 'long _lo = 30;' y no '30L' ¿significa esto que mi variable se convertirá en _float_? O en el caso de '_lo = _lo + 2.77' que' _lo' se convertirá en _float_ aunque fue declarado como _long_ – luigi7up
No, las carrozas no están involucradas aquí. En el primer caso, '30' es un' int' que se convierte automáticamente a través de una conversión de ampliación a 'long'.En el segundo caso, su declaración es ilegal. Tendría que lanzar explícitamente el lado derecho a largo, p. '_lo = (long) (_lo + 2.77)' –