在C#中表达数学无穷大

Ale*_*lex 25 c# math infinite-value

是否有可能在C#中表达(数学)无穷大,正面或负面?如果是这样,怎么样?

Jef*_*f L 33

使用PositiveInfinityNegativeInfinity常量:

double positive = double.PositiveInfinity;
double negative = double.NegativeInfinity;
Run Code Online (Sandbox Code Playgroud)


Jai*_*han 32

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"
Run Code Online (Sandbox Code Playgroud)

  • @Jaimal:那是因为编译器将`1/0`视为整数除法.使用`1/0f`或`1/0.0`可行. (15认同)
  • 因为编译器会检测除以零并停止编译. (10认同)

Cha*_*ion 5

public const double NegativeInfinity = -1.0 / 0.0;
public const double PositiveInfinity = 1.0 / 0.0;
Run Code Online (Sandbox Code Playgroud)


Mar*_*uła 5

是的,检查的类型的常量的值floatdouble,如:
float.PositiveInfinity
float.NegativeInfinity
这些值都符合IEEE-754,所以你可能想看看它是如何工作究竟,所以你会知道,当同时进行计算,你如何能得到这些值.更多信息在这里.