C++ 数学函数

2025 年 8 月 29 日 | 阅读 4 分钟

C++ 提供了一些基本的数学函数,使用这些函数所需的头文件是 <math.h>

三角函数

方法描述
cos(x)计算 x 的余弦值。
sin(x)计算 x 的正弦值。
tan(x)计算 x 的正切值。
acos(x)计算 x 的反余弦值。
asin(x)计算 x 的反正弦值。
atan(x)计算 x 的反正切值。
atan2(x,y)计算坐标 x 和 y 的反正切值。

双曲函数

方法描述
cosh(x)计算 x 的双曲余弦值。
sinh(x)计算 x 的双曲正弦值。
tanh(x)计算 x 的双曲正切值。
acosh(x)计算 x 的反双曲余弦值。
asinh(x)计算 x 的反双曲正弦值。
atanh(x)计算 x 的反双曲正切值。

指数函数

方法描述
exp(x)计算 e 的 x 次幂。
frexp(value_type x,int* exp)将一个数分解为有效数字和 2 的指数次幂。
Idexp(float x, int e)计算 x 乘以 2 的 e 次幂的积。
log(x)计算 x 的自然对数。
log10(x)计算 x 的常用对数。
modf()将一个数分解为整数和小数部分。
exp2(x)计算以 2 为底的 x 的指数。
expm1(x)计算指数 e 的 x 次幂减去一。
log1p(x)计算 x 加一的自然对数。
log2(x)计算 x 的以 2 为底的对数。
logb(x)计算 x 的对数。
scalbn( x, n)计算 x 乘以 FLT_RADX 的 n 次幂的积。
scalbln( x, n)计算 x 乘以 FLT_RADX 的 n 次幂的积。
ilogb(x)返回 x 的指数部分。

浮点操作函数

方法描述
copysign(x,y)返回 x 的大小和 y 的符号。
nextafter(x,y)表示 x 在 y 方向上的下一个可表示值。
nexttoward(x,y)表示 x 在 y 方向上的下一个可表示值。

最大值、最小值和差值函数

方法描述
fdim(x,y)计算 x 和 y 之间的正差。
fmax(x,y)返回 x 和 y 两个数中较大的数。
fmin()返回 x 和 y 两个数中较小的数。

幂函数

方法描述
pow(x,y)计算 x 的 y 次幂。
sqrt(x)计算 x 的平方根。
cbrt(x)计算 x 的立方根。
hypot(x,y)计算直角三角形的斜边。

最接近整数的操作

方法描述
ceil(x)向上舍入 x 的值。
floor(x)向下舍入 x 的值。
round(x)对 x 的值进行四舍五入。
lround(x)对 x 的值进行四舍五入并转换为 long integer。
llround(x)对 x 的值进行四舍五入并转换为 long long integer。
fmod(n,d)计算 n/d 的余数。
trunc(x)将 x 的值截断为零。
rint(x)使用舍入模式对 x 的值进行四舍五入。
lrint(x)使用舍入模式对 x 的值进行四舍五入并转换为 long integer。
llrint(x)对 x 的值进行四舍五入并转换为 long long integer。
nearbyint(x)将 x 的值四舍五入到最近的整数值。
remainder(n,d)计算 n/d 的余数。
remquo()同时计算余数和商。

其他函数

方法描述
fabs(x)计算 x 的绝对值。
abs(x)计算 x 的绝对值。
fma(x,y,z)计算表达式 x*y+z。

宏函数

方法描述
fpclassify(x)返回与宏常量之一匹配的类型值。
isfinite(x)检查 x 是否是有限数。
isinf()检查 x 是否是无限数。
isnan()检查 x 是否是 NaN。
isnormal(x)检查 x 是否是正常数。
signbit(x)检查 x 的符号是否为负。

比较宏函数

方法描述
isgreater(x,y)判断 x 是否大于 y。
isgreaterequal(x,y)判断 x 是否大于或等于 y。
less(x,y)判断 x 是否小于 y。
islessequal(x,y)判断 x 是否小于或等于 y。
islessgreater(x,y)判断 x 是否小于或大于 y。
isunordered(x,y)检查 x 是否可以有意义地进行比较。

误差和伽马函数

方法描述
erf(x)计算 x 的误差函数值。
erfc(x)计算 x 的互补误差函数值。
tgamma(x)计算 x 的伽马函数值。
lgamma(x)计算 x 的伽马函数的对数。