C++のfabs()関数の使い方を解説!絶対値を求める方法とサンプルコード
C++で数値の絶対値を求めたいときに便利なのが、<cmath>ヘッダーに定義されているfabs()関数です。この記事では、fabs()関数の基本的な使い方から、実際のサンプルコード、実行結果までをわかりやすく解説します。
fabs()関数とは
fabs()は、C言語およびC++の標準ライブラリに含まれる関数で、引数に渡した浮動小数点数の絶対値(absolute value)を返します。負の値を渡せば正の値に変換され、正の値はそのまま返されます。
関数の宣言
fabs()関数は、以下のように宣言されています。
double fabs(double x)
パラメータと戻り値
- x:絶対値を求めたい浮動小数点数(double型)
- 戻り値:引数xの絶対値(double型)
なお、fabs()は浮動小数点数専用の関数です。整数型の絶対値を求める場合は、<cstdlib>ヘッダーのabs()関数を使用するのが一般的ですが、fabs()に整数を渡した場合も、暗黙的にdouble型へ変換されて正しく動作します。
fabs()関数の使用例
次のサンプルコードでは、正の整数と負の整数に対してfabs()関数を使用し、それぞれの絶対値を出力しています。
#include <iostream>
#include <cmath>
using namespace std;
int main () {
int a, b;
a = 1234;
b = -344;
cout << "The absolute value of " << a << " is " << fabs(a) << endl;
cout << "The absolute value of " << b << " is " << fabs(b) << endl;
return(0);
}実行結果
このプログラムをコンパイルして実行すると、以下のような出力が得られます。
The absolute value of 1234 is 1234 The absolute value of -344 is 344
まとめ
- fabs()は浮動小数点数の絶対値を返す関数で、
<cmath>ヘッダーをインクルードして使用する - 負の値は正の値に変換され、正の値はそのまま返される
- 戻り値はdouble型なので、必要に応じてキャストや書式設定を行うとよい
数値計算や距離の計算など、絶対値が必要な場面はプログラミングで頻繁に登場します。fabs()関数の使い方をマスターして、効率的なコーディングに役立てましょう。
-
C++のexpm1()関数とは?使い方とコード例を解説
expm1()関数は、自然対数の底eを任意の数で累乗した値から1を引いた結果を計算するために使用される数学関数です。つまり、(e^a) - 1 の値を返します。 expm1()の数学的な表現は以下の通りです。 expm1(a) = (e^a) - 1 なお、xが非常に小さい値の場合、e^xは1に近づくため、通常の方法(exp(x) - 1)で計算すると桁落ちによって精度が低下します。expm1()関数を使うことで、このようなケースでも高精度な結果を得ることができます。 C++におけるexpm1()関数の構文は以下の通りです。 float expm1(variable_name); 各要素の意
-
C++のlog1p()関数とは?使い方とサンプルコードをわかりやすく解説
C++のlog1p()関数の概要C++のlog1p()関数は、任意の数値 a に対して「(a + 1) の自然対数(底が e の対数)」を計算するための関数です。戻り値として (a+1) の自然対数の値が返されます。なお、引数に -1 未満の値 を渡した場合は、有効な結果が得られないため NaN(Not a Number) が返される点に注意が必要です。数学的な表現log1p() の動作は、次の数式で表すことができます。log1p(a) = base-e log(a+1)log1p()の構文C++における log1p() 関数の構文は以下のとおりです。float log1p(float var