2009-08-30 73 views

Respuesta

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

¿Por qué no simplemente flotan positivo = 1/0 ;? ¿Por qué el paso adicional – hhafez

+8

? Porque el compilador detectará la división por cero y detendrá la compilación. –

+14

@Jaimal: Eso es porque el compilador trata '1/0' como una división entera. Usar '1/0f' o' 1/0.0' funcionaría. – LukeH

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

Sí, comprobar los valores de las constantes de tipos float y double, como:
float.PositiveInfinity
float.NegativeInfinity
Esos valores son compatibles con IEEE-754, por lo que podría Quiero ver cómo funciona esto exactamente, para que sepa cuándo y cómo puede obtener esos valores mientras hace cálculos. Más información here.

30

Uso los PositiveInfinity y NegativeInfinity constantes:

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

mirar esto (sólo devuelve ∞ Positivo-infinito)

Observación:

El valor de esta constante es el resultado de dividir un número positivo por cero. Esta constante se devuelve cuando el resultado de una operación es mayor que MaxValue. Utilice IsPositiveInfinity para determinar si un valor de se evalúa como infinito positivo.

Así que esto será igual a Infinity.

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

y ahora para negativo es

Esta constante se devuelve cuando el resultado de una operación es menor que MinValue.

así que esto será igual a Infinity.

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

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

Cuestiones relacionadas