Бесконечности и NaN в C#

Для представления положительной и отрицательной бесконечности в C# имеется две специальные константы:
System.Double.NegativeInfinity
System.Double.PositiveInfinity
Первая — минус бесконечность, вторая — плюс бесконечность.

Для проверки того, является-ли число бесконечностью можно либо сравнивать его с одной из этих констант
if (doubleDigit == System.Double.NegativeInfinity)
{
// ...
}
else if (doubleDigit == System.Double.PositiveInfinity)
{
// ...
}

Либо использовать специальные методы класса Double:

  1. System.Double.IsNegativeInfinity (double) проверяет число double на предмет того, является-ли оно минус бесконечностью;
  2. System.Double.IsPositiveInfinity (double) проверяет число double на предмет того, является-ли оно плюс бесконечностью;
  3. System.Double.IsInfinity (double) проверяет число double на предмет того, является-ли оно плюс бесконечностью, или минус бесконечностью.

if (System.Double.IsInfinity(doubleDigit))
{
// ...
}

Установка символа плюс и минус бесконечностей
По-умолчанию в C# плюс и минус бесконечности представляются строками Infinity и -Infinity соответственно. Однако эти строки можно заменить на свои.
Для этого существуют свойства System.Globalization.NumberFormatInfo.NegativeInfinitySymbol и System.Globalization.NumberFormatInfo.PositiveInfinitySymbol, которые представляют из себя сроку, представляющую бесконечности.

System.Globalization.NumberFormatInfo.PositiveInfinitySymbol = "Plus_Beskone4nost";
System.Globalization.NumberFormatInfo.NegativeInfinitySymbol = "Minus_Beskone4nost";
MessageBos.Show(System.Globalization.NumberFormatInfo.PositiveInfinitySymbol + "\n" +
System.Globalization.NumberFormatInfo.NegativeInfinitySymbol);

Аналогичные инструменты есть и для проверки того, является-ли число числом (во ляпнул :) ), NaN, not a number :

if (doubleDigit == System.Double.NaN)
{
// ...
}
if (System.Double.IsNaN(doubleDigit))
{
// ...
}
System.Globalization.NumberFormatInfo.NaNSymbol = "EtoNe4islo";
MessageBos.Show(System.Globalization.NumberFormatInfo.NaNSymbol);

Скачать пример

Поблагодарить автора

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>