Инициализировать длинный в 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
.