Если результирующее значение слишком велико для представления в формате 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.
static void Main(string[] args)
{
Console.WriteLine(3999999999 + 6999999999);
}
Дата: 2019-07-30, просмотров: 222.