C言語で四捨五入を行う方法は?
C言語では、次のように四捨五入を実現します。
- round() 関数を使う:round() 関数は C 言語の数学ライブラリ関数で、浮動小数点数の四捨五入を行います。そのプロトタイプは次のとおりです。
double round(double x);
例えば:
double num = 6.8;
double rounded_num = round(num);
printf("%f\n", rounded_num); // 输出 7.0
- floor()とceil()関数は、数値の丸め処理に使用します。floor()関数は値を下に丸め、ceil()関数は値を上に丸めます。数値に0.5を加えてからfloor()関数またはceil()関数を使用すると、四捨五入処理ができます。
たとえば:
double num = 6.8;
double rounded_num = floor(num + 0.5);
printf("%f\n", rounded_num); // 输出 7.0
- 浮動小数点を整数に変換する際は、強制的に切り捨てられて整数になる。その際、もとの浮動小数点と変換された整数との差が0.5以上なら切り上げ、それ以外は切り捨てられる。
たとえば:
double num = 6.8;
int int_num = (int)num;
double diff = num - int_num;
double rounded_num;
if (diff >= 0.5) {
rounded_num = int_num + 1;
} else {
rounded_num = int_num;
}
printf("%f\n", rounded_num); // 输出 7.0