2009-08-30 6 views

Antwort

30

double.PositiveInfinity

double.NegativeInfinity

float zero = 0; 

float positive = 1/zero; 
Console.WriteLine(positive); // Outputs "Infinity" 

float negative = -1/zero; 
Console.WriteLine(negative); // Outputs "-Infinity" 
+0

, warum Sie nicht nur positive Sie schweben = 1/0 ;? Warum der zusätzliche Schritt – hhafez

+8

Beachte, dass der Compiler die Division durch Null erkennt und die Kompilierung stoppt. –

+14

@Jaimal: Das liegt daran, dass der Compiler '1/0' als Integer Division behandelt. Die Verwendung von '1/0f' oder' 1/0.0' würde funktionieren. – LukeH

5
public const double NegativeInfinity = -1.0/0.0; 
public const double PositiveInfinity = 1.0/0.0; 
4

Ja, überprüfen Sie die Werte der Konstanten von Typen float und double, wie:
float.PositiveInfinity
float.NegativeInfinity
Diese Werte entsprechen den IEEE-754, so könnte es sein Sie möchten wissen, wie das genau funktioniert, damit Sie wissen, wann und wie Sie diese Werte erhalten, während Sie Berechnungen durchführen. Mehr Infos here.

30

Verwenden Sie die PositiveInfinity und NegativeInfinity Konstanten:

double positive = double.PositiveInfinity; 
double negative = double.NegativeInfinity; 
0

dieser Look (nur Rück Positive-infinity ∞)

Bemerkungen:

Der Wert dieser Konstante ist das Ergebnis der Teilung eine positive Zahl von Null. Diese Konstante wird zurückgegeben, wenn das Ergebnis einer Operation größer als MaxValue ist. Verwenden Sie IsPositiveInfinity, um zu ermitteln, ob ein Wert positive Unendlichkeit ergibt.

Das entspricht also Infinity.

Console.WriteLine("PositiveInfinity plus 10.0 equals {0}.", (Double.PositiveInfinity + 10.0).ToString()); 

und jetzt negativ ist

Diese Konstante zurückgeführt wird, wenn das Ergebnis einer Operation weniger als MinValue ist.

so wird dies Infinity gleich.

Console.WriteLine("10.0 minus NegativeInfinity equals {0}.", (10.0 - Double.NegativeInfinity).ToString()); 

Referenz: https://msdn.microsoft.com/en-us/library/system.double.negativeinfinity(v=vs.110).aspx