I testował co wrócił z podziałem tym zer tj 0/1
, 1/0
i 0/0
. Do tego użyłem czegoś podobnego do następującego:
Console.WriteLine(1d / 0d);
Jednak ten kod 8
nie wypisuje żadnych Infinity
lub innych stałych łańcuchowych, takich jak PositiveInfinity
.
Dla kompletności wszystkie poniższe wydruki 8
:
Console.WriteLine(1d / 0d);
double value = 1d / 0d;
Console.WriteLine(value);
Console.WriteLine(Double.PositiveInfinity);
I Console.WriteLine(Double.NegativeInfinity);
wydruki -8
.
Dlaczego ta nieskończoność drukuje 8?
Dla tych z was, którzy wydają się myśleć, że jest to symbol nieskończoności, a nie ósemka, następujący program:
Console.WriteLine(1d / 0d);
double value = 1d / 0d;
Console.WriteLine(value);
Console.WriteLine(Double.PositiveInfinity);
Console.WriteLine(8);
Wyjścia:
8
, a nie jakiś dziwny znak Unicode oznaczający nieskończoność, obrócony o 90 stopni? Może się to zmienić w zależności od ustawień regionalnych. Wypróbowałem to na dotnetfiddle.net i drukuje Infinity
.
Double.PositiveInfinity.ToString()[0] == '8'
. Istnieje kilka egzotycznych znaków, które w niektórych czcionkach wyglądają bardzo podobnie do innych. Na jaki język jest skonfigurowany Twój komputer?
8
też (język niemiecki).
Console.Write("∞");
∞
to znak nieskończoności. wystarczy obrócić o 90 stopni, aby to zobaczyć. 8