Основы объектно-ориентированного программирования на языке C# book | Page 75
5.2 Простi типи
Над значеннями числових типiв можна виконувати арифметичнi
операцiı̈ ( + , - , * , / ) та порiвняння: == (рiвне), != (не рiвне), >= (бiльше
або рiвне), <= (менше або рiвне), > (бiльше), < (менше). Данi операцiı̈
та порiвняння виконуються на числовими значеннями таким чинлм:
1) аргументи операцiı̈ (порiвняння) перетворюються до першого
типу з перелiку int , uint , long , ulong , float , double , decimal ,
дiапазон якого покриває дiапазони типiв аргументiв; позначимо
цей тип як T ;
2) виконується вiдповiдна операцiя/порiвняння над значеннями ти-
пу T, отриманими на кроцi 1 i ı̈ı̈ результат стає результатом
операцiı̈ над початковими значеннями (при цьому, якщо тип T
цiлий i виконується дiлення на число вiдмiнне вiд нуля, то ре-
зультатом є цiле число – цiла частина вiд дiлення).
Наприклад,
double x;
x = 1/2; // виконується операцiя дiлення над значеннями типу int,
// результат операцiї - 0 типу int (цiла частина вiд дiлення)
// вiн неявно перетворюється на значення типу double
Console.WriteLine(x); // виводить 0
x = 1.0/2; // виконується перетворення 2 (типу int) на
// значення типу double, потiм дiлення, результат
// якого має тип double
Console.WriteLine(x); // виводить 0.5
x = 1.0f/2; // виконується перетворення 2 (типу int) на
// значення типу float, потiм дiлення, результат
// якого має тип float, що неявно перетворюється
// на значення типу double
Console.WriteLine(x); // виводить 0.5
У випадку, коли результат операцiı̈ не може увiйти в дiапазон типу
результату операцiı̈ (наприклад, множення великих чисел, що призво-
дить до виходу за межi дiапазону типу) можлива втрата iнформацiı̈
(як i при деяких явних перетвореннях типiв, описаних ранiше), або
помилка пiд час виконання програми (якщо вiдповiдна операцiя зна-
ходиться у блоцi checked ). Спроба дiлення цiлого числа на нульове
значення цiлого типу призводить до помилки пiд час виконання про-
грами.
Результатом порiвняння є значення типу bool ( true , якщо вiдно-
шення виконується, false в iншому випадку), наприклад,
int x = 5;
bool y = false;
y = (x == 5); // y стає рiвним true
75