using System;
namespace N
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(0.0/-1.0);
double c = 0.0 / -1.0; // Здесь breakpoint
Console.WriteLine(c);
}
}
}
В первом Console.WriteLine в консоль выводится отрицательный ноль. Это происходит из-за того, что в функции происходит деление чисел типа double, которые могут быть представлены как знак, порядок и мантисса. В данном случае
знак у числа будет отрицательным. Во втором выводе происходит тоже самое. Но если в visual studio поставить breakpoint на переменную c и в процессе выполнения программы следить за ее значением, то вместо -0 в окне локальных переменных будет просто 0. Почему не учитывается знак нуля в окне локальных переменных? И можно ли как-нибудь исправить это?