C# definition for NAN (in Reflector) is not correct?

J

josephbubba

Greetings,

Question about how the NaN constant is defined in .NET.

When I look at the C# definition for the System.Double NaN definition
in Roeder's Reflector, it looks like this:

public const double NaN = (double) 1.0 / (double) 0.0;

However, according to the .NET documentation (and the IEEE standard),
the actual definition is the result of dividing zero by zero (0/0).
Dividing 1/0 is positive infinity.

Interestingly, when I switch to the any other decompilation languages
(ex. Visual Basic, or Managed C++), the value of NaN is not
specifically defined as a division, but instead uses a constant. For
example, Visual Basic looks like this:

Public Const NaN As Double = NaN



Is this simply a bug in Reflector for C#, or am I missing something?

Thanks in advance.

By the way, I'm using Reflector version 5.1.2.0 and pointing to
the .Net framework version 2.0.50727.1433.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top