Инициализировать длинный в Java
примитивные типы данных-oracle doc говорит диапазона long в Java-это -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
Но когда я делаю что-то подобное в моем затмении
long i = 12345678910;
он показывает мне "The literal 12345678910 of type int is out of range" ошибка.
есть 2 вопроса.
1) как инициализировать long со значением 12345678910?
2) все числовые литералы по умолчанию типа int?
4 ответа:
- вы должны добавить
L:long i = 12345678910L;.- да.
кстати: это не должен быть верхний регистр L, но нижний регистр путают с
1много раз :).
вам нужно добавить
Lсимвол до конца числа, чтобы Java распознала его как длинный.long i = 12345678910L;да.
посмотреть Примитивные Типы Данных который говорит "целочисленный литерал имеет тип long, если он заканчивается буквой L или L; в противном случае он имеет тип int."
вам нужно добавить верхний регистр
Lв конце вот такlong i = 12345678910L;то же самое верно для float с
3.0f, который должен ответить на ваши вопросы
для инициализации long вам нужно добавить "L" до конца.
Он может быть прописным или строчным.все числовые значения по умолчанию
int. Даже когда вы делаете любую операциюbyteС любым целым числом,byteсначала повышается доintи затем любой операции.попробуй такое
byte a = 1; // declare a byte a = a*2; // you will get error hereвы получаете ошибку, потому что
2по умолчаниюint.
Поэтому вы пытаетесь размножатьсяbyteСint. Следовательно, получает typecasted кintкоторый не может быть назначен обратноbyte.