2009-08-30 80 views

回答

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

你爲什麼不只是浮動積極= 1/0;?爲什麼額外的步驟 – hhafez 2009-08-30 01:04:28

+8

因爲編譯器會檢測到被零除並停止編譯。 – 2009-08-30 01:12:11

+14

@Jaimal:這是因爲編譯器將'1/0'視爲整數除法。使用'1/0f'或'1/0.0'可以工作。 – LukeH 2009-08-30 01:38:28

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

是,檢查的類型floatdouble常量的值,比如:
float.PositiveInfinity
float.NegativeInfinity
這些值符合IEEE-754,所以你可以想要看看它是如何工作的,所以你會意識到,何時以及如何在計算時獲得這些值。更多信息here

30

使用PositiveInfinityNegativeInfinity常數:

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

看看這個(只是返回正無窮∞)

備註:

此常數的值是分割的結果一個正數 由零。 當操作的結果是 大於MaxValue時,返回此常數。使用IsPositiveInfinity確定 值是否計算爲正無窮大。

所以這將等於無窮大。

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

現在對於負是

當運算的結果小於minValue該常數被返回。

所以這將等於無窮大。

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

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