Одним із ключових аспектів роботи з числами в C# є розрізнення між цілими числами (числами без цифр після десяткового розділювача) і числами з плаваючою комою (числами з нулем або більше цифр після десяткового розділювача).
Два найпоширеніші числові типи в C# - це int (32-бітове ціле число) і double (64-бітове число з плаваючою комою).
int i = 123;
double d = 54.29;
І цілі числа, і числа з плаваючою комою можуть використовувати символ _ як розділювач цифр, що допомагає, коли ми задаємо великі числа:
int largeInt = 1_000_000;
// => 1000000
double largeDouble = 9_876_543.21;
// => 9876543.21
Арифметичні дії виконують за допомогою стандартних арифметичних операторів (+, -, * тощо). Числа можна порівнювати за допомогою стандартних операторів порівняння (<, >= тощо), а також оператора рівності (==) та оператора нерівності (!=).
5 * 6;
// => 30
1.2 > 0.8
// => true
2 != 4
// => true
Коли ми перетворюємо числа з одного типу на інший, є два види перетворень:
Оскільки int має меншу точність, ніж double, перетворення з int на double безпечне, а отже, є неявним перетворенням. Однак перетворення з double на int може означати втрату даних, тому воно потребує явного перетворення.
int i = 9;
double d = 2.66;
// Safe conversion, thus implicit conversion
double fromInt = i;
// Potentially unsafe conversion, thus explicit conversion
int fromDouble = (int)d;