Арифметические операции, функции и выражения
И снова о числах
Арифметический тип данных является одним из основных типов данных. Встроенными типами, с которыми мы познакомились, являются тип int, задающий некоторое подмножество целых чисел, и тип double, задающий числа, имеющие целую часть, дробную часть и десятичный порядок. Чаще всего, числа рассматриваются как неделимые, хотя мы и видели, что их можно разобрать на цифры, можно найти делители числа и другие его составляющие. Но основой являются операции над числами как неделимыми единицами.
Привычными являются бинарные операции сложения, вычитания, умножения (+, -, *):
A = B + C;
Результаты этих операций интуитивно понятны и соответствуют их пониманию в математике. Следует заметить, что для компьютера сложение целых и сложение вещественных – это разные операции. Когда операция сложения выполняется над двумя операндами, один из которых типа int, а другой – double, то перед сложением тип int преобразуется в тип double. Такое преобразование всегда возможно, поскольку целые числа – это часть вещественных чисел (каждое целое число – это вещественное число, а обратное утверждение неверно).
Понятны и унарные операции (+ и -):
A = -B;
Деление чисел и взятие остатка от деления нацело
Один и тот же знак операции деления чисел (/) означает разные операции. Если оба операнда (делимое и делитель) типа int, то это операция деления нацело и возвращает результат типа int. Если же один из операндов или оба – типа double, то это деление вещественных и результат имеет тип double.
Результат операции взятия остатка от деления нацело (%) интуитивно понятен при делении целых положительных чисел. Для отрицательных и вещественных чисел эта операция хотя и допустима, но применяется редко.
Следует еще отметить особенности деления на нуль. Для целых чисел в результате деления на нуль возникает ошибка, для вещественных чисел ошибки не возникает, но результат равен специальному значению – infinity (бесконечность).
Пример:
int m, n, p, q, r; double a, b, c, d; m = 2; n = 3; p = m * n; q = n / p; r = n % p; a = 2.2; b = 3.3; c = a * b; d = b / c; Console.WriteLine("m = {0} n = {1} " + " p = {2} q = {3} r = {4} ", m, n, p, q, r); Console.WriteLine("a = {0} b = {1} " + " c = {2} d = {3} ", a, b, c, d); Результаты: m = 2 n = 3 p = 6 q = 0 r = 3 a = 2,2 b = 3,3 c = 7,26 d = 0,454545454545455