На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

C#: NaN и IsNaN



Некоторые математические операции дают результаты, которые не являются действительными числами. Ответы могут быть мнимыми числами или неопределенными значениями, любое из которых не могут быть представлены в число с плавающей точкой (в математике используется запятая, здесь я придерживаюсь понятий программирования). В этих случаях результирующее значение будет NaN.

"Не Число"

C # и .NET framework не обеспечивают способ представления некоторых числовых значений. Например, не существует стандартного способа для хранения переменной в виде мнимого или комплексного чисел. Некоторыми из математических методов математического класса библиотеки можно вычислить такие значения или возвращать такие значения, которые не являются действительными числами. Вместо этого, выбрасывая исключение в этих случаях функции возвращают специальное значение с именем NaN, которое является сокращением от "не число".

Значение NaN можно получить из постоянного поля на float или Double структур. Это поле является статическим членом структуры. Оно не может быть использовано в целях сравнения, два значения NaN могут быть логически разными, поэтому тесты на равенство всегда возвращают false.

Следующий пример генерирует результат NaN, пытаясь получить квадратный корень из отрицательного числа. Затем идет сравнение с константой. Обратите внимание, что сравнение будет неуспешным.

double nanPr = Math.Sqrt(-4);
Console.WriteLine(nanPr);                 // На выходе: "NaN"
Console.WriteLine(nanPr == double.NaN);   // На выходе: "False"
Проверка на NaN

Хотя стандартные операторы сравнения не позволяют проверить, является значение числом или нет, все же есть способ: float и double. Метод IsNaN возвращает логическое значение, указывающее, является параметр числом или нет.

double nanPr = Math.Sqrt(-4);
Console.WriteLine(double.IsNaN(nanPr));   //На выходе: "True"




Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, си шарп, NaN





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Создать Excel в visual studio c#
Классический остросюжетный детектив


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.