C ライブラリ関数 -fmod()

C 標準ライブラリ - <math.h>

説明

C ライブラリ関数double fmod(double x, double y)返すxで割るyの余り。

fmod()は C 標準ライブラリ<math.h>の1つの関数で、2つの浮動小数点数の除算の余りを計算するために使用されます。この関数は除算操作の余りを返し、その符号は被除数と同じです。

宣言

以下は fmod() 関数の宣言です。

double fmod(double x, double y)

引数

  • x:被除数、浮動小数点数。
  • y:除数、浮動小数点数。

戻り値

  • 返すxで割るyの余りで、その符号はx同じです。
  • もしyが 0 の場合、結果は未定義となり、計算エラーが発生する可能性があります。

例

以下の例は fmod() 関数の使い方を示しています。

例

#include <stdio.h>
#include <math.h>

int main ()
{
   float a, b;
   int c;
   a = 9.2;
   b = 3.7;
   c = 2;
   printf("%f / %d の余りは %lf\n"\n", a, c, fmod(a,c));
   printf("%f / %f の余りは %lf\n"\n", a, b, fmod(a,b));
   
   return(0);
}

上記のプログラムをコンパイルして実行すると、次の結果が得られます:

9.200000 / 2 的余数是 1.200000
9.200000 / 3.700000 的余数是 1.800000

複数の値の余り計算を処理する

以下の例は、複数の値の余り計算を処理する方法を示しています:

例

#include <stdio.h>
#include <math.h>

int main() {
    double numerators[] = {5.3, 7.1, -4.2, 10.0};
    double denominators[] = {2.0, 3.0, 2.5, -3.5};
    int num_values = sizeof(numerators) / sizeof(numerators[0]);

    for (int i = 0; i < num_values; i++) {
        double x = numerators[i];
        double y = denominators[i];
        double result = fmod(x, y);

        printf("fmod(%f, %f) = %f\n", x, y, result);
    }

    return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が得られます:

fmod(5.300000, 2.000000) = 1.300000
fmod(7.100000, 3.000000) = 1.100000
fmod(-4.200000, 2.500000) = -1.700000
fmod(10.000000, -3.500000) = 3.000000

コード解説

  • 複数の浮動小数点数を含む2つの配列を定義しますnumeratorsとdenominators、それぞれ被除数と除数を表します。
  • 使用してfor各被除数と除数のペアをループで走査し、呼び出しfmod(x, y)関数で余り計算を行います。
  • 各ペアの値の余り計算結果を出力します。

使用シーン

fmod()この関数は多くのアプリケーションで広く使用されており、以下を含みますがこれに限定されません:

  • 浮動小数点数の余りを計算し、周期的現象のシミュレーションに使用します。
  • 角度の周期的計算などのループ操作を実装します。
  • グラフィックスおよびゲームプログラミングで座標変換と境界条件を処理します。

まとめ

fmod()この関数は2つの浮動小数点数の除算の余りを計算するために使用され、浮動小数点数の余り計算を処理する重要なツールです。合理的に使用することでfmod()、科学計算、工学アプリケーション、およびグラフィックスプログラミングにおいて、浮動小数点数の余りの正確な処理を実現できます。

C 標準ライブラリ - <math.h>

その他の拡張