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

Категория: C# Комментариев: 0

Для представления положительной и отрицательной бесконечности в 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);

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

Автор: Кто-то   @   17 мая 2009 Комментариев: 0
Метки : ,

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

Webmoney Z163628999150, R617151845974

Комментариев: 0

Комментариев к этой записи поке нет. Ваш комментарий будет первым.
оставить комментарий

Предыдущая запись
«
Следующая запись
»