.- .

确定指定值的 gamma 函数。

语法

double tgamma(
   double x
);

float tgammaf(
   float x
);

long double tgammal(
   long double x
);

#define tgamma(X) // Requires C11 or higher

float tgamma(
   float x
); //C++ only

long double tgamma(
   long double x
); //C++ only

参数

x
要查找其伽玛值的值。

返回值

如果成功,则返回 x 的伽玛值。

如果 x 的度量值对于数据类型而言过大或过小,则出现范围错误。 如果 x<= 0,则出现域错误或范围错误。

问题 返回值
x = ±0 ±INFINITY
x = 负整数 NaN
x = -INFINITY NaN
x = +INFINITY +INFINITY
x = NaN NaN
域错误 NaN
极点错误 ±HUGE_VAL、±HUGE_VALF 或 ±HUGE_VALL
溢出范围错误 ±HUGE_VAL、±HUGE_VALF 或 ±HUGE_VALL
下溢范围错误 舍入后的正确值。

_matherr 中所指定的内容报告错误。

备注

由于 C++ 支持重载,您可以调用采用并返回 tgammafloat 类型的 long double 的重载。 在 C 程序中,除非使用 <tgmath.h> 宏调用此函数,否则 tgamma 始终采用并返回 double

如果使用 <tgmath.h>tgamma() 宏,则参数的类型将决定选择哪个版本的函数。 有关详细信息,请参阅泛型类型数学

如果 x 是自然数,则此函数返回 (x-1) 的阶乘。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

函数 C 标头 C++ 标头
.- . <math.h> <cmath>
tgamma <tgmath.h>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

按字母顺序显示的函数参考
.- .