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

英国正版365官方网站 📅 2026-01-23 06:12:48 👤 admin 👁️ 5741 ❤️ 267
std::abs(float),std::fabs,std::fabsf,std::fabsl

C++

语言

标准库头文件

自立与有宿主实现

具名要求

语言支持库

概念库 (C++20)

诊断库

工具库

字符串库

容器库

迭代器库

范围库 (C++20)

算法库

数值库

本地化库

输入/输出库

文件系统库 (C++17)

正则表达式库 (C++11)

原子操作库 (C++11)

线程支持库 (C++11)

技术规范

数值库

常用数学函数

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

数学常数 (C++20)

浮点环境 (C++11)

复数

数值数组

伪随机数生成

编译时有理数算术 (C++11)

数值算法

gcd(C++17)

lcm(C++17)

插值

midpoint(C++20)

lerp(C++20)

通用数值运算

iota(C++11)

accumulate

inner_product

adjacent_difference

partial_sum

位操作

bit_cast(C++20)

has_single_bit(C++20)

bit_ceil(C++20)

bit_floor(C++20)

bit_width(C++20)

rotl(C++20)

rotr(C++20)

countl_zero(C++20)

countl_one(C++20)

countr_zero(C++20)

countr_one(C++20)

popcount(C++20)

endian(C++20)

常用数学函数

函数

基本运算

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)

宏常量

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

INFINITY(C++11)

NAN(C++11)

math_errhandlingMATH_ERRNOMATH_ERREXCEPT(C++11)

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

定义于头文件

定义于头文件

(C++17 起)

float abs( float arg );

(1)

double abs( double arg );

(2)

long double abs( long double arg );

(3)

定义于头文件

(4)

float fabs ( float arg );

float fabsf( float arg );

(C++11 起)

double fabs ( double arg );

(5)

(6)

long double fabs ( long double arg );

long double fabsl( long double arg );

(C++11 起)

double fabs ( IntegralType arg );

(7)

(C++11 起)

1-6) 计算浮点值 arg 的绝对值。

7) 接受任何整数类型参数的重载集或函数模板。等价于 (5) (将参数转型为 double )。

对于整数参数, std::abs 的整数重载更可能是较好的匹配。若以满足 std::is_unsigned::value 为 true 的 X 类型参数调用 std::abs ,而整数提升不能将 X 转换为 int ,则程序为病式。

(C++17 起)

参数

arg

-

浮点或整数类型值

返回值

若成功,则返回 arg 的绝对值( |arg| )。值是准确的,且不依赖任何舍入模式。

错误处理

此函数不受制于任何指定于 math_errhandling 的错误条件。

若实现支持 IEEE 浮点算术( IEC 60559 ),则

若参数为 ±0 ,则返回 +0

若参数为 ±∞ ,则返回 +∞

若参数为 NaN ,则返回 NaN

示例

运行此代码

#include

#include

int main()

{

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

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

// 特殊值

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

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

}

可能的输出:

abs(+3.0) = 3

abs(-3.0) = 3

abs(-0.0) = 0

abs(-Inf) = inf

缺陷报告

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

DR

应用于

出版时的行为

正确行为

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)

应用函数 std::abs 到 valarray 的每个元素 (函数模板)

相关推荐

十二生肖乞丐属相(手捧金碗当乞丐是什么生肖 )
365bet备用器

十二生肖乞丐属相(手捧金碗当乞丐是什么生肖 )

📅 01-21 👁️ 4851
条款项、商务标、技术标都包含哪些事项内容?
365bet在线客服

条款项、商务标、技术标都包含哪些事项内容?

📅 08-09 👁️ 2921
2025年上海电费多少钱一度附计算方法及阶梯电价标准