2009-08-30 16 views

risposta

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

Perché non basta fare decimale positivo = 1/0 ;? perché il passaggio aggiuntivo – hhafez

+8

Becco il compilatore rileverà la divisione per zero e interromperà la compilazione. –

+14

@Jaimal: Questo perché il compilatore considera '1/0' come divisione di interi. Usare '1/0f' o' 1/0.0' funzionerebbe. – LukeH

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

Sì, controllare i valori costanti di tipo float e double, come:
float.PositiveInfinity
float.NegativeInfinity
Questi valori sono compatibili con IEEE-754, quindi potresti vuoi verificare come funziona esattamente, quindi sarai consapevole, quando e come puoi ottenere quei valori mentre fai i calcoli. Maggiori informazioni here.

30

Utilizzare i PositiveInfinity e NegativeInfinity costanti:

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

sguardo questa (solo ritorno positivo-infinity ∞)

Osservazione:

Il valore di questa costante è il risultato della divisione un numero positivo di zero. Questa costante viene restituita quando il risultato di un'operazione è superiore a MaxValue. Utilizzare IsPositiveInfinity per determinare se un valore viene valutato come infinito positivo.

Quindi questo sarà uguale a Infinito.

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

e ora negativo è

Questa costante viene restituito quando il risultato di un'operazione è inferiore MinValue.

quindi sarà uguale a Infinito.

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

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