2009-08-30 32 views

Trả lời

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

lý do tại sao anh không chỉ làm nổi dương tính = 1/0 ;? lý do tại sao các bước thêm – hhafez

+8

Becuase trình biên dịch sẽ phát hiện sự phân chia bằng không và ngừng biên dịch. –

+14

@Jaimal: Đó là do trình biên dịch xử lý '1/0' làm phân chia số nguyên. Sử dụng '1/0f' hoặc' 1/0.0' sẽ hoạt động. – LukeH

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

Vâng, kiểm tra hằng giá trị của các loại floatdouble, như:
float.PositiveInfinity
float.NegativeInfinity
Những giá trị này là phù hợp với IEEE-754, vì vậy bạn có thể muốn kiểm tra cách thức hoạt động chính xác, vì vậy bạn sẽ biết, khi nào và cách bạn có thể nhận được các giá trị đó trong khi thực hiện các phép tính. Thông tin thêm here.

30

Sử dụng PositiveInfinityNegativeInfinity hằng:

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

nhìn này (chỉ trả Positive-vô cực ∞)

Ghi chú:

Giá trị của hằng số này là kết quả của phân chia một số dương bằng không. Hằng số này được trả về khi kết quả của phép toán là lớn hơn MaxValue. Sử dụng IsPositiveInfinity để xác định xem giá trị có đánh giá là vô cực hay không.

Vì vậy, điều này sẽ bằng Infinity.

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

và bây giờ cho tiêu cực là

liên tục này được trả lại khi kết quả của một hoạt động nhỏ hơn MINVALUE.

vì vậy điều này sẽ bằng Infinity.

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

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