std::abs(float),std::fabs,std::fabsf,std::fabsl

std::abs(float),std::fabs,std::fabsf,std::fabsl

C++

编译器支持

自由(freestanding)与宿主(hosted)

语言

标准库

标准库头文件

具名要求

特性测试宏 (C++20)

语言支持库

概念库 (C++20)

诊断库

内存管理库

元编程库 (C++11)

通用工具库

容器库

迭代器库

范围库 (C++20)

算法库

字符串库

文本处理库

数值库

日期和时间库

输入/输出库

文件系统库 (C++17)

并发支持库 (C++11)

执行控制库 (C++26)

技术规范

符号索引

外部库

[编辑] 数值库

常用数学函数

数学特殊函数 (C++17)

数学常数 (C++20)

基本线性代数算法 (C++26)

数据并行类型 (SIMD) (C++26)

浮点环境 (C++11)

复数

数值数组 (valarray)

伪随机数生成

位操作 (C++20)

因子运算

gcd(C++17)

lcm(C++17)

插值

midpoint(C++20)

lerp(C++20)

饱和算术

add_sat(C++26)

sub_sat(C++26)

saturate_cast(C++26)

mul_sat(C++26)

div_sat(C++26)

通用数值运算

iota(C++11)

ranges::iota(C++23)

accumulate

inner_product

adjacent_difference

partial_sum

reduce(C++17)

transform_reduce(C++17)

inclusive_scan(C++17)

exclusive_scan(C++17)

transform_inclusive_scan(C++17)

transform_exclusive_scan(C++17)

[编辑] 常用数学函数

函数

基本操作

abs(int)labsllabsimaxabs(C++11)

abs(float)fabs

divldivlldivimaxdiv(C++11)

fmod

remainder(C++11)

remquo(C++11)

fma(C++11)

fmax(C++11)

fmin(C++11)

fdim(C++11)

nannanfnanl(C++11)(C++11)(C++11)

指数函数

exp

exp2(C++11)

expm1(C++11)

log

log10

log1p(C++11)

log2(C++11)

幂函数

sqrt

cbrt(C++11)

hypot(C++11)

pow

三角和双曲函数

sin

cos

tan

asin

acos

atan

atan2

sinh

cosh

tanh

asinh(C++11)

acosh(C++11)

atanh(C++11)

误差函数和伽马函数

erf(C++11)

erfc(C++11)

lgamma(C++11)

tgamma(C++11)

取整浮点运算

ceil

floor

roundlroundllround(C++11)(C++11)(C++11)

trunc(C++11)

nearbyint(C++11)

rintlrintllrint(C++11)(C++11)(C++11)

浮点操纵函数

ldexp

scalbnscalbln(C++11)(C++11)

ilogb(C++11)

logb(C++11)

frexp

modf

nextafternexttoward(C++11)(C++11)

copysign(C++11)

分类和比较

fpclassify(C++11)

isfinite(C++11)

isinf(C++11)

isnan(C++11)

isnormal(C++11)

signbit(C++11)

isgreater(C++11)

isgreaterequal(C++11)

isless(C++11)

islessequal(C++11)

islessgreater(C++11)

isunordered(C++11)

类型

div_t

ldiv_t

lldiv_t(C++11)

imaxdiv_t(C++11)

float_t(C++11)

double_t(C++11)

宏常量

HUGE_VALFHUGE_VALHUGE_VALL(C++11)(C++11)

math_errhandlingMATH_ERRNOMATH_ERREXCEPT(C++11)

INFINITY(C++11)

NAN(C++11)

分类

FP_NORMALFP_SUBNORMALFP_ZEROFP_INFINITEFP_NAN(C++11)(C++11)(C++11)(C++11)(C++11)

[编辑]

定义于头文件

定义于头文件

(1)

float abs( float num ); double abs( double num );

long double abs( long double num );

(直至 C++23)

constexpr /* 浮点类型 */ abs( /* 浮点类型 */ num );

(C++23 起)

定义于头文件

(2)

float fabs ( float num ); double fabs ( double num )

long double fabs ( long double num );

(直至 C++23)

constexpr /* 浮点类型 */ fabs ( /* 浮点类型 */ num );

(C++23 起)

float fabsf( float num );

(3)

(C++11 起) (C++23 起为 constexpr)

long double fabsl( long double num );

(4)

(C++11 起) (C++23 起为 constexpr)

额外重载 (自 C++11 起)

定义于头文件

template< class Integer >

double fabs ( Integer num );

(A)

(C++11 起) (C++23 起为 constexpr)

1-4) 计算浮点值 num 的绝对值。 库为所有 cv-非限定浮点类型提供了 std::abs 和 std::fabs 的重载,作为参数 num 的类型。(C++23 起)

A) 为所有整数类型提供了额外的重载,它们被视为 double。

(C++11 起)

对于整型参数,std::abs 的整型重载 可能是更好的匹配。如果调用 std::abs 时使用无法通过 整型提升 转换为 int 的无符号整型参数,则程序格式错误。

目录

1 参数

2 返回值

3 错误处理

4 注意

5 示例

6 缺陷报告

7 参阅

[编辑] 参数

num

-

浮点值或整数值

[编辑] 返回值

如果成功,返回 arg 的绝对值 (|arg|)。返回的值是精确的,不依赖于任何舍入模式。

[编辑] 错误处理

此函数不受 math_errhandling 中指定的任何错误条件的影响。

如果实现支持 IEEE 浮点运算 (IEC 60559),

如果参数是 ±0,则返回 +0。如果参数是 ±∞,则返回 +∞。如果参数是 NaN,则返回 NaN。

[编辑] 注意

不需要完全按照 (A) 提供额外的重载。它们只需要足以确保对于整型参数 num,std::fabs(num) 具有与 std::fabs(static_cast(num)) 相同的效果。

[编辑] 示例

运行此代码

#include

#include

int main()

{

std::cout << "abs(+3.0) = " << std::abs(+3.0) << '\n'

<< "abs(-3.0) = " << std::abs(-3.0) << '\n';

// special values

std::cout << "abs(-0.0) = " << std::abs(-0.0) << '\n'

<< "abs(-Inf) = " << std::abs(-INFINITY) << '\n'

<< "abs(-NaN) = " << std::abs(-NAN) << '\n';

}

可能的输出

abs(+3.0) = 3

abs(-3.0) = 3

abs(-0.0) = 0

abs(-Inf) = inf

abs(-NaN) = nan

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告

应用于

发布时的行为

正确的行为

LWG 2192

C++98

std::abs 的重载在两个头文件中声明不一致

在两个头文件中都声明了这些重载

LWG 2735

C++11

对于整型,std::abs 的重载错误地要求返回 double

移除了此要求

[编辑] 参阅

abs(int)labsllabs(C++11)

计算整数值的绝对值 (\(\small{|x|}\)|x|) (函数) [编辑]

copysigncopysignfcopysignl(C++11)(C++11)(C++11)

复制浮点值的符号 (函数) [编辑]

signbit(C++11)

检查给定数字是否为负数 (函数) [编辑]

abs(std::complex)

返回复数的模 (函数模板) [编辑]

abs(std::valarray)

将函数 abs 应用于 valarray 的每个元素 (函数模板) [编辑]

C 文档 关于 fabs

相关推荐

探寻青云之谜,揭秘青云在哪里,引领行业新风向标
“我不知为何会在子宫里”相近搜索结果(10000)
beat365正版网站唯一官网app

“我不知为何会在子宫里”相近搜索结果(10000)

📅 10-17 👁️ 4031
C罗获″缓刑″处罚引发争议,史无前例的决定对C罗和国际足联是双赢