名前空間
変種
操作

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

提供: cppreference.com
< cpp‎ | numeric‎ | math
 
 
数値演算ライブラリ
一般的な数学関数
数学の特殊関数 (C++17)
数学定数 (C++20)
浮動小数点環境 (C++11)
複素数
数値配列
擬似乱数生成
コンパイル時有理数算術 (C++11)
数値演算アルゴリズム
(C++17)
(C++17)
補間
(C++20)
(C++20)
汎用の数値演算
(C++11)
(C++17)
ビット操作
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
一般的な数学関数
関数
基本的な演算
abs(float)fabs
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指数関数
(C++11)
(C++11)
(C++11)
(C++11)
冪関数
(C++11)
(C++11)
三角関数と双曲線関数
(C++11)
(C++11)
(C++11)
誤差関数とガンマ関数
(C++11)
(C++11)
(C++11)
(C++11)
最も近い整数
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮動小数点操作関数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類および比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
マクロ定数
(C++11)(C++11)(C++11)(C++11)(C++11)
 
ヘッダ <cmath> で定義
ヘッダ <cstdlib> で定義
(C++17以上)
float       abs( float arg );
(1)
double      abs( double arg );
(2)
long double abs( long double arg );
(3)
ヘッダ <cmath> で定義
(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 ( 整数型 arg );
(7) (C++11以上)
1-6) 浮動小数点値 arg の絶対値を計算します。
7) 任意の整数型の引数を受理するオーバーロード集合または関数テンプレート。 (5) と同等です (引数は double にキャストされます)。

整数引数に対しては、 std::abs の整数オーバーロードがより良くマッチします。 std::is_unsigned<X>::valuetrue であり、 X整数拡張int に変換できない場合、プログラムは ill-formed です。

(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';
    // special values
    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 was erroneously required to have overloads for integer types returning double removed the requirement

[編集] 関連項目

整数値の絶対値 (|x|) を計算します
(関数) [edit]
(C++11)(C++11)(C++11)
浮動小数点値の符号をコピーします
(関数) [edit]
(C++11)
指定された数値が負かどうか調べます
(関数) [edit]
複素数の絶対値を返します
(関数テンプレート) [edit]
valarray の各要素に関数 std::abs を適用します
(関数テンプレート) [edit]