cpp/numeric/math/fabs:修订间差异
来自cppreference.com
小无编辑摘要 |
abandon cmath_fl |
||
| 第17行: | 第17行: | ||
|until1=|dcl1= | |until1=|dcl1= | ||
float fabs ( float arg ); | float fabs ( float arg ); | ||
|since2= | |since2=|dcl2= | ||
float fabsf( float arg ); | float fabsf( float arg ); | ||
}} | }} | ||
| 第26行: | 第26行: | ||
|until1=|dcl1= | |until1=|dcl1= | ||
long double fabs ( long double arg ); | long double fabs ( long double arg ); | ||
|since2= | |since2=|dcl2= | ||
long double fabsl( long double arg ); | long double fabsl( long double arg ); | ||
}} | }} | ||
| 第35行: | 第35行: | ||
@1-6@计算浮点值 {{tt|arg}} 的绝对值。 | @1-6@计算浮点值 {{tt|arg}} 的绝对值。 | ||
@7@任何 | @7@任何[[cpp/types/|类型]]参数的重载集或函数模板。{{|}} 参数型为 {{c|double}} 。 | ||
{{rrev | since=c++17 |对于整数参数, [[cpp/numeric/math/abs|{{tt|std::abs}} 的整数重载]]更可能是较好的匹配。若以满足 {{c|std:: | {{rrev | since=c++17 |对于整数参数, [[cpp/numeric/math/abs|{{tt|std::abs}} 的整数重载]]更可能是较好的匹配。若以满足 {{c|std::<X>}} 为 {{tt|true}} 的 {{tt|X}} 类型参数调用 {{tt|std::abs}} ,而[[cpp/language/implicit_conversion#整数类型提升|整数提升]]不能将 {{tt|X}} 转换为 {{c|int}} ,则程序为病式。}} | ||
===参数=== | ===参数=== | ||
| 第48行: | 第48行: | ||
===错误处理=== | ===错误处理=== | ||
此函数不受制于任何指定于 {{ | 此函数不受制于任何指定于 {{|math_errhandling}} 的错误条件。 | ||
若实现支持 IEEE 浮点算术( IEC 60559 ),则 | 若实现支持 IEEE 浮点算术( IEC 60559 ),则 | ||
| 第54行: | 第54行: | ||
* 若参数为 ±∞ ,则返回 +∞ | * 若参数为 ±∞ ,则返回 +∞ | ||
* 若参数为 NaN ,则返回 NaN | * 若参数为 NaN ,则返回 NaN | ||
===示例=== | ===示例=== | ||
| 第79行: | 第76行: | ||
abs(-Inf) = inf | abs(-Inf) = inf | ||
}} | }} | ||
===参阅=== | ===参阅=== | ||
2018年12月3日 (一) 07:33的版本
| 在标头 <cmath> 定义
|
||
| 在标头 <cstdlib> 定义
|
(C++17 起) |
|
| |
(1) | |
| |
(2) | |
| |
(3) | |
| 在标头 <cmath> 定义
|
||
| (4) | ||
| (C++17 起) | ||
| |
(5) | |
| (6) | ||
| (C++17 起) | ||
| |
(7) | (C++11 起) |
1-6) 计算浮点值
arg 的绝对值。|
对于整数参数, |
(C++17 起) |
参数
| arg | - | 浮点或整数类型值 |
返回值
若成功,则返回 arg 的绝对值( |arg| )。值是准确的,且不依赖任何舍入模式。
错误处理
此函数不受制于任何指定于 math_errhandling 的错误条件。
若实现支持 IEEE 浮点算术( IEC 60559 ),则
- 若参数为 ±0 ,则返回 +0
- 若参数为 ±∞ ,则返回 +∞
- 若参数为 NaN ,则返回 NaN
示例
运行此代码
#include <iostream>
#include <cmath>
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++ 标准。
| 缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
|---|---|---|---|
| LWG 2735 | C++11 | 错误地要求了 std::abs 有对整数类型返回 double 的重载
|
移除该要求 |
参阅
(C++11) |
计算整数的绝对值(|x|) (函数) |
(C++11)(C++11)(C++11) |
复制浮点数的符号 (函数) |
(C++11) |
检查给定数是否为负 (函数) |
| 返回复数的模 (函数模板) | |
应用函数 abs 到 valarray 的每个元素 (函数模板) | |
fabs 的 C 文档
| |