[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]

Файл: yvsbin3.jpg -(34 KB, 600x424, yvsbin3.jpg)
34 No.193461  

Чии, как отслеживается "урезание" значения переменной при приведении типов?

int iBigVal = 100000;
short sSmallVal = (short) iBigVal;
System.out.println(sSmallVal);
-31072

И поделитесь, пожалуйста, вашей good practice по именованию переменных в java.

>> No.193463  

>>193461
Проверять перед конверсией, очевидно же. Есть же java.lang.Short.MAX_VALUE и java.lang.Short.MIN_VALUE для этого специально.
Для long и int есть java.lang.Math.toIntExact(), которая кидается эксепшонами.

>> No.193469  
Файл: 6c7f837f28f3f2837cdd15933b90b643.jpg -(256 KB, 1440x1080, 6c7f837f28f3f2837cdd15933b90b643.jpg)
256

>>193463
Мм, спасибо.

>по именованию переменных

Где-то был совет про добавление в начало имени типа переменной. Используете такое?

>> No.193553  

>>193469

> Где-то был совет про добавление в начало имени типа переменной. Используете такое?

Неа. Во-первых, этих "рекомендаций" существует добрых несколько десятков, и если всем следовать - имена переменных у тебя на экран влезать не будут. Во-вторых, это хоть сколько-то актуально в С/плюсах, где есть неявное приведение типов практически чего угодно к практически чему угодно, но Java тебе в ногу выстрелить не даст и без того.

>> No.193562  

>>193553

>хоть сколько-то актуально в С/плюсах

Понятно, вот оно откуда у меня всплыло.

>> No.193716  

Что будет, если не проставлять эти буковки в конце чисел?

float x = 10_456_456_553f;
double y = 104_645_666d;
>> No.193722  

>>193716

> float x = 10_456_456_553f;

Здесь мы говорим, что указанная справа константа имеет тип float. Без этого обозначения ее типом будет integer, что приведет к ошибке, ибо в int эта константа не влезает. Нужно, правда, помнить, что float (и double) хранят число только приблизительно, поэтому константа будет так или иначе обрезана.

> double y = 104_645_666d;

Здесь ситуация точно такая же, но ошибки не будет - константа помещается в int.
Подчеркивания в обоих случаях чисто для красоты.




[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]