В выражении можно смешивать без явного приведения типов только совместимые данные
То есть, если не произойдет потеря точности.
Иерархия преобразований внутри арифметического типа:
int a = 10;
long b;
float f;
b = a; // автоматическое
f = a; // преобразование
Явное преобразование типов
Формат:
(тип_приемника) выражение
int a = 10;
long b = 5;
float f = 7.0f;
a = (int) b;
b = (long) f;
a = (int) (2.0 * 3.14 * f);
Преобразование типов в выражениях
В выражении можно смешивать без явного приведения типов только совместимые данные.
Для бинарных операций действует следующий алгоритм автоматических преобразований, выполняемый сверху вниз:
· ЕСЛИ один операнд имеет тип decimal, TO и второй преобразуется в decimal (но если второй операнд имеет тип float или double, результат будет ошибочным).
· ЕСЛИ один операнд имеет тип double, TO и второй преобразуется в значение типа double.
· ЕСЛИ один операнд имеет тип float, TO и второй преобразуется в значение типа float.
· ЕСЛИ один операнд имеет тип ulong, TO и второй преобразуется в значение типа ulong (но если второй операнд имеет тип sbyte, short, int или long, результат будет ошибочным).
· ЕСЛИ один операнд имеет тип long, TO и второй преобразуется в значение типа long.
· ЕСЛИ один операнд имеет тип uint, а второй имеет тип sbyte, short или int, ТО оба операнда преобразуются в значения типа long.
· ЕСЛИ один операнд имеет тип uint, TO и второй преобразуется в значение типа uint.
· ИНАЧЕ оба операнда преобразуются в значения типа int. Поиск по сайту:
|