Почему не работает double.NaN в C#?

C# COM net double NaN

Есть приложение на С# (Сервер).
В нём некоротый Класс.
В нём метод
public string Method1(){
double d=1;
return d.ToString();
}

Есть приложение на Delphi 7 (Клиент).
Это приложение через COM создаёт экземпляр класса и вызывает метод Method1. Всё замечательно работает.
Но! Если заменить double d = 1 на double d = double.NaN - То приложение вылетает, даже не заходя в метод Method1.

Почему??

Примечание:
Проблема была не в том, что "NaN содержит в себе результат деления на ноль, что возможно при присвоении приводит к исключительной ситуации (ну т.е может быть double d = NaN в данном случае эквавилентно double d = 1/0).", а в том что delphi и .NET ипользуют разные регистры для работы с числами с плавающей точкой.
Решение проблемы (если вдруг кому понадобится) тут:
http://blogs.msdn.com/dsvc/archive/2009/06/25/floating-point-exceptions-in-managed-code-resulting-in-access-violation-crash.aspx
Ответы:
Имхо - нельзя присваивать переменной значение NaN. Ибо NaN содержит в себе результат деления на ноль, что возможно при присвоении приводит к исключительной ситуации (ну т.е может быть double d = NaN в данном случае эквавилентно double d = 1/0).
Я думаю с NaN обычно сравнивают, а не присваивают...
Окей, будем знать :)
pomkaster, поздравляю.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.