[C言語] 四捨五入した結果をprintf関数で表示する
C言語で数値を四捨五入し、その結果を表示するには、まず数値を四捨五入するための計算を行います。通常、四捨五入にはround
関数を使用しますが、math.h
ヘッダーファイルをインクルードする必要があります。
四捨五入した結果を表示するには、printf
関数を用います。printf
関数では、フォーマット指定子を使用して数値を適切に表示します。例えば、%.0f
を使用すると、小数点以下を表示せずに四捨五入された整数部分のみを出力できます。
四捨五入した結果をprintfで表示する方法
四捨五入した値を変数に格納する
C言語で四捨五入を行うには、標準ライブラリのmath.h
に含まれるround関数
を使用します。
この関数は、引数として与えられた浮動小数点数を四捨五入し、その結果を返します。
以下に、四捨五入した値を変数に格納する方法を示します。
#include <stdio.h>
#include <math.h>
int main() {
double originalValue = 3.14159; // 元の値
double roundedValue = round(originalValue); // 四捨五入した値を格納
printf("元の値: %f\n", originalValue);
printf("四捨五入した値: %f\n", roundedValue);
return 0;
}
このプログラムでは、originalValue
に格納された値をround関数
で四捨五入し、その結果をroundedValue
に格納しています。
printf関数での表示例
printf関数
を使用して、四捨五入した結果を表示することができます。
printf関数
は、フォーマット指定子を用いて出力形式を指定します。
以下に、四捨五入した値を表示する例を示します。
#include <stdio.h>
#include <math.h>
int main() {
double value = 2.71828; // 元の値
double roundedValue = round(value); // 四捨五入
// printf関数で表示
printf("四捨五入前の値: %.2f\n", value);
printf("四捨五入後の値: %.0f\n", roundedValue);
return 0;
}
このプログラムでは、%.2f
を使用して小数点以下2桁までの値を表示し、%.0f
を使用して四捨五入後の整数値を表示しています。
フォーマット指定子を用いた表示の工夫
printf関数
のフォーマット指定子を工夫することで、出力の見栄えを整えることができます。
以下に、フォーマット指定子を用いた表示の工夫例を示します。
#include <stdio.h>
#include <math.h>
int main() {
double value = 123.456; // 元の値
double roundedValue = round(value); // 四捨五入
// フォーマット指定子を用いた表示
printf("元の値: %10.2f\n", value); // 10桁幅で小数点以下2桁
printf("四捨五入後の値: %10.0f\n", roundedValue); // 10桁幅で整数
return 0;
}
このプログラムでは、%10.2f
を使用して10桁幅で小数点以下2桁までの値を表示し、%10.0f
を使用して10桁幅で四捨五入後の整数値を表示しています。
これにより、出力が整然とし、見やすくなります。
応用例
小数点以下の桁数を指定して四捨五入
C言語で小数点以下の桁数を指定して四捨五入するには、round関数
と数学的な操作を組み合わせる方法があります。
以下にその例を示します。
#include <stdio.h>
#include <math.h>
int main() {
double value = 3.14159; // 元の値
int decimalPlaces = 2; // 小数点以下の桁数
double scale = pow(10, decimalPlaces); // スケールを計算
// 小数点以下の桁数を指定して四捨五入
double roundedValue = round(value * scale) / scale;
printf("元の値: %f\n", value);
printf("小数点以下%d桁で四捨五入した値: %.2f\n", decimalPlaces, roundedValue);
return 0;
}
このプログラムでは、value
をscale
倍して四捨五入し、再びscale
で割ることで、小数点以下の桁数を指定して四捨五入しています。
配列内の数値を一括で四捨五入
配列内の数値を一括で四捨五入するには、ループを使用して各要素に対してround関数
を適用します。
以下にその例を示します。
#include <stdio.h>
#include <math.h>
int main() {
double values[] = {1.234, 2.345, 3.456, 4.567}; // 元の配列
int size = sizeof(values) / sizeof(values[0]); // 配列のサイズ
// 配列内の数値を一括で四捨五入
for (int i = 0; i < size; i++) {
values[i] = round(values[i]);
}
printf("四捨五入後の配列: ");
for (int i = 0; i < size; i++) {
printf("%.0f ", values[i]);
}
printf("\n");
return 0;
}
このプログラムでは、for
ループを使用して配列values
の各要素を四捨五入し、結果を同じ配列に格納しています。
四捨五入結果をファイルに出力
四捨五入した結果をファイルに出力するには、ファイル操作を行うfopen
、fprintf
、fclose関数
を使用します。
以下にその例を示します。
#include <stdio.h>
#include <math.h>
int main() {
double value = 5.6789; // 元の値
double roundedValue = round(value); // 四捨五入
// ファイルに出力
FILE *file = fopen("output.txt", "w");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
fprintf(file, "元の値: %f\n", value);
fprintf(file, "四捨五入した値: %.0f\n", roundedValue);
fclose(file);
printf("四捨五入結果をoutput.txtに出力しました。\n");
return 0;
}
このプログラムでは、fopen関数
でファイルを開き、fprintf関数
で四捨五入した結果をファイルに書き込み、fclose関数
でファイルを閉じています。
出力されたファイルoutput.txt
には、元の値と四捨五入した値が記録されます。
まとめ
この記事では、C言語で四捨五入した結果をprintf関数
で表示する方法について解説しました。
四捨五入の基本的な方法から、応用例として小数点以下の桁数を指定した四捨五入や配列内の数値の一括処理、ファイルへの出力方法を紹介しました。
さらに、よくある質問を通じて、四捨五入と切り捨ての違いやprintf
での表示の注意点、自作関数のメリットについても触れました。
この記事を通じて、C言語での四捨五入処理に関する理解が深まったことと思います。
ぜひ、実際のプログラムでこれらの知識を活用し、より効率的な数値処理を実現してください。