Cライブラリ関数 -modf()
説明
Cライブラリ関数double modf(double x, double *integer)戻り値は小数部分(小数点以下の部分)で、integer を整数部分に設定します。
modf()C標準ライブラリの<math.h>関数の1つで、浮動小数点数を整数部分と小数部分に分解するために使用されます。通常、浮動小数点数を整数部分と小数部分に分離する必要がある場面で使用されます。
宣言
以下は modf() 関数の宣言です。
#include <math.h> double modf(double x, double *iptr); float modff(float x, float *iptr); long double modfl(long double x, long double *iptr);
パラメータ
- x-- 浮動小数点数値。
- integer-- 整数部分を格納するオブジェクトへのポインタ。
戻り値
この関数は x の小数部分を返し、符号は x と同じです。
例
以下の例は、modf() 関数の使い方を示しています。
例
#include<stdio.h>
#include<math.h>
int main ()
{
double x, fractpart, intpart;
x = 8.123456;
fractpart = modf(x, &intpart);
printf("整数部分 = %lf\n", intpart);
printf("小数部分 = %lf\n", fractpart);
return(0);
}
#include<math.h>
int main ()
{
double x, fractpart, intpart;
x = 8.123456;
fractpart = modf(x, &intpart);
printf("整数部分 = %lf\n", intpart);
printf("小数部分 = %lf\n", fractpart);
return(0);
}
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
整数部分 = 8.000000 小数部分 = 0.123456
複数の値の分解を処理する
以下の例は、複数の浮動小数点数の分解を処理する方法を示しています:
例
#include <stdio.h>
#include <math.h>
int main() {
double values[] = {123.456, -123.456, 0.0, 1.0, -1.0};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
double intpart;
double fracpart;
fracpart = modf(x, &intpart);
printf("Original value: %f\n", x);
printf("Integer part: %f\n", intpart);
printf("Fractional part: %f\n", fracpart);
printf("\n");
}
return 0;
}
#include <math.h>
int main() {
double values[] = {123.456, -123.456, 0.0, 1.0, -1.0};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
double intpart;
double fracpart;
fracpart = modf(x, &intpart);
printf("Original value: %f\n", x);
printf("Integer part: %f\n", intpart);
printf("Fractional part: %f\n", fracpart);
printf("\n");
}
return 0;
}
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
Original value: 123.456000 Integer part: 123.000000 Fractional part: 0.456000 Original value: -123.456000 Integer part: -123.000000 Fractional part: -0.456000 Original value: 0.000000 Integer part: 0.000000 Fractional part: 0.000000 Original value: 1.000000 Integer part: 1.000000 Fractional part: 0.000000 Original value: -1.000000 Integer part: -1.000000 Fractional part: -0.000000
コード解析
- 複数の浮動小数点数を含む配列を定義します
values。 - 使用する
for各値をループして呼び出しますmodf(x, &intpart)分解を実行します。 - 各値の元の値、整数部分、小数部分を出力します。
使用シーン
modf()この関数は多くのアプリケーションで広く使用されており、以下に限定されません:
- 浮動小数点数の整数部分と小数部分を分離して個別に処理します。
- 計算中に整数部分と小数部分をそれぞれ処理する必要がある場面。
- 科学計算や数値解析で小数部分を正確に処理する必要がある場面。
注意事項
modf()この関数は正数と負数を処理する際、整数部分と小数部分の符号は同じになります。例えば、-123.456 の場合、整数部分は -123.0、小数部分は -0.456 です。
まとめ
modf()この関数は浮動小数点数を整数部分と小数部分に分解するために使用され、浮動小数点演算を処理する重要なツールです。適切に使用することでmodf()、科学計算、数値解析、工学分野で浮動小数点数を正確に分解し、整数部分と小数部分を個別に処理することができます。