Чии, как отслеживается "урезание" значения переменной при приведении типов? int iBigVal = 100000;short sSmallVal = (short) iBigVal;System.out.println(sSmallVal); -31072 И поделитесь, пожалуйста, вашей good practice по именованию переменных в java.
Чии, как отслеживается "урезание" значения переменной при приведении типов?
int iBigVal = 100000;short sSmallVal = (short) iBigVal;System.out.println(sSmallVal);
-31072
И поделитесь, пожалуйста, вашей good practice по именованию переменных в java.
>>193461 Проверять перед конверсией, очевидно же. Есть же java.lang.Short.MAX_VALUE и java.lang.Short.MIN_VALUE для этого специально. Для long и int есть java.lang.Math.toIntExact(), которая кидается эксепшонами.
>>193463 Мм, спасибо. >по именованию переменных Где-то был совет про добавление в начало имени типа переменной. Используете такое?
>>193463 Мм, спасибо.
>по именованию переменных
Где-то был совет про добавление в начало имени типа переменной. Используете такое?
>>193469 > Где-то был совет про добавление в начало имени типа переменной. Используете такое? Неа. Во-первых, этих "рекомендаций" существует добрых несколько десятков, и если всем следовать - имена переменных у тебя на экран влезать не будут. Во-вторых, это хоть сколько-то актуально в С/плюсах, где есть неявное приведение типов практически чего угодно к практически чему угодно, но Java тебе в ногу выстрелить не даст и без того.
>>193469
> Где-то был совет про добавление в начало имени типа переменной. Используете такое?
Неа. Во-первых, этих "рекомендаций" существует добрых несколько десятков, и если всем следовать - имена переменных у тебя на экран влезать не будут. Во-вторых, это хоть сколько-то актуально в С/плюсах, где есть неявное приведение типов практически чего угодно к практически чему угодно, но Java тебе в ногу выстрелить не даст и без того.
>>193553 >хоть сколько-то актуально в С/плюсах Понятно, вот оно откуда у меня всплыло.
>>193553
>хоть сколько-то актуально в С/плюсах
Понятно, вот оно откуда у меня всплыло.
Что будет, если не проставлять эти буковки в конце чисел? float x = 10_456_456_553f;double y = 104_645_666d;
Что будет, если не проставлять эти буковки в конце чисел?
float x = 10_456_456_553f;double y = 104_645_666d;
>>193716 > float x = 10_456_456_553f; Здесь мы говорим, что указанная справа константа имеет тип float. Без этого обозначения ее типом будет integer, что приведет к ошибке, ибо в int эта константа не влезает. Нужно, правда, помнить, что float (и double) хранят число только приблизительно, поэтому константа будет так или иначе обрезана. > double y = 104_645_666d; Здесь ситуация точно такая же, но ошибки не будет - константа помещается в int. Подчеркивания в обоих случаях чисто для красоты.
>>193716
> float x = 10_456_456_553f;
Здесь мы говорим, что указанная справа константа имеет тип float. Без этого обозначения ее типом будет integer, что приведет к ошибке, ибо в int эта константа не влезает. Нужно, правда, помнить, что float (и double) хранят число только приблизительно, поэтому константа будет так или иначе обрезана.
> double y = 104_645_666d;
Здесь ситуация точно такая же, но ошибки не будет - константа помещается в int. Подчеркивания в обоих случаях чисто для красоты.
- wahaba + wakaba 3.0.9 + futaba + futallaby -