Если результирующее значение слишком велико для представления в формате decimal, то возникает исключение System.OverflowException. Если полученное значение слишком мало для представления в десятичном формате, результат равен нулю.
Console.WriteLine(-.5m * .2m);
Операция вида x / y.
Деление целых чисел. При делении двух целых чисел результат всегда является целочисленным.
Если значение правого операнда равно нулю, возникает исключение System.DivideByZeroException
Пример.
using System;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
int c = 6 / 0;
Console.WriteLine(c);
}
}
}
Ошибка Деление на константу, равную нулю.
Деление целых чисел округляет результат.
Пример
int c = 9 / 4;
Частное вычисляется в соответствии с арифметическими правилами стандарта IEEE 754. В следующей таблице приведены результаты всех возможных комбинаций ненулевых конечных значений, нулей, бесконечных значений и ошибок NaN В таблице x и y являются положительными конечными значениями, а z является результатом x / y.
+y
–y
+0
–0
+∞
–∞
NaN
+x
+z
–z
+∞
–∞
+0
–0
NaN
–x
–z
+z
–∞
+∞
–0
+0
NaN
+0
+0
–0
NaN
NaN
+0
–0
NaN
–0
–0
+0
NaN
NaN
–0
+0
NaN
+∞
+∞
–∞
+∞
–∞
NaN
NaN
NaN
–∞
–∞
+∞
–∞
+∞
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
Пример
double c = 9 / 4;
Результат
Пример. Чтобы явно присвоить тип, можно поместить десятичный разделитель после числа.
double c = 9 / 4.0;
Результат
Операции вида x % y. Результатом выражения x % y является значение x – (x / y) * y.
Остаток для целых чисел. Пример.
Console.WriteLine(5 % 2);
Результат.
Остаток для чисел с плавающей запятой. Пример.
Console.WriteLine(5.9 % 2.3);
Результат.
Оператор сложения.
Операция вида x + y
int uint long ulong
В контексте checked если сумма выходит за пределы диапазона типа результирующего значения, возникает исключение System.OverflowException. В контексте unchecked о переполнениях не сообщается, и все старшие биты, выходящие за пределы диапазона результирующего значения, отбрасываются.
Примеры.
Данный пример вызовет ошибку переполнения, т.к. uint+uint дадут в результате выражения тип uint.
static void Main(string[] args)
{
Console.WriteLine(3999999999 + 3999999999);
}
Данный пример будет работать, т.к. uint+long дадут в результате выражения тип long.