Допустим у меня есть переменная int N = 19; Если я её поделю на 2 - получится 9,5 и выйдет ошибка (нужно что бы тип переменной оставался int). Есть еще 2 переменные A и B, в которые записывается первая часть числа и вторая часть числа. Допустим N = 19, 19 /2 = 9,5. Но мне нужно, что бы в переменной A было 9, а в переменной B было 10.
В целых числах 19 / 2 = 9, а не 9,5.
Отсюда вполне легко реализовать деление:
a = n / 2; // a = 9
b = n - a; // b = 10
var N = 19
//деление целого числа на целое с присвоением в целое ВСЕГДА даст целое число округленное в нижнюю сторону.
var A = N / 2; //[результат:9]
Лично для себя можешь провести маленьки тест и попробовать следать следующее:
int someInt = (int)9.999; //угадай что будет записано в someInt?
Так же нужно понимать что такое остача от деления:
var Aost = N % 2; // [результат:5]
в библиотеке Math есть функция возвращающая округление к БОЛЬШЕМУ числу. То есть 0,1 как и 0,9 буде откруглено в 1.
var B1 = Math.Ceiling((decimal)19 / 2); //[результат:10]
не уверен, но скорее всего Celling внутри реализован вот так.
var B2 = N - N / 2; //[результат:10]
Но для читаемости кода лучше будет использовать именно Math.Ceiling();
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости