この記事では、C言語を使って数値を四捨五入する方法について学びます。
標準ライブラリの関数を使ったり、自分で四捨五入の関数を作ったりする方法を紹介します。
また、四捨五入した結果をprintf関数
で表示する方法も解説します。
C言語での四捨五入の方法
C言語では、数値を四捨五入するためのさまざまな方法があります。
ここでは、標準ライブラリを使用した方法や、自作の関数を作成する方法について詳しく解説します。
標準ライブラリを使用する
C言語の標準ライブラリには、数値を四捨五入するための便利な関数がいくつか用意されています。
これらの関数を使用することで、簡単に四捨五入を行うことができます。
主に使用される関数には、round()
、floor()
、ceil()
があります。
round()関数の紹介
round()関数
は、引数として与えられた浮動小数点数を最も近い整数に四捨五入します。
具体的には、0.5以上の小数は切り上げられ、0.5未満の小数は切り捨てられます。
この関数を使用するには、<math.h>ヘッダーファイル
をインクルードする必要があります。
以下は、round()関数
の使用例です。
#include <stdio.h>
#include <math.h>
int main() {
double num1 = 3.6;
double num2 = 2.3;
double num3 = 5.5;
num1 = round(num1); // 4
num2 = round(num2); // 2
num3 = round(num3); // 6
return 0;
}
このプログラムを実行すると、round()関数
による四捨五入の結果が代入れます。
floor()関数とceil()関数の違い
floor()関数
とceil()関数
も、数値を扱う際に非常に便利です。
floor()関数
は、引数として与えられた数値以下の最大の整数を返します。
つまり、常に切り捨てを行います。
ceil()関数
は、引数として与えられた数値以上の最小の整数を返します。
つまり、常に切り上げを行います。
以下は、floor()
とceil()
の使用例です。
#include <stdio.h>
#include <math.h>
int main() {
double num = 3.7;
floored = floor(num); // 3
ceiled = ceil(num); // 4
return 0;
}
このプログラムを実行すると、floor()
とceil()
の結果がそれぞれ代入されます。
自作の四捨五入関数
標準ライブラリの関数を使用する以外にも、自分で四捨五入の関数を作成することができます。
自作の関数を作ることで、特定の要件に合わせた処理を行うことが可能です。
自作関数の必要性
自作の四捨五入関数を作成する理由はいくつかあります。
例えば、特定のビジネスロジックに基づいた四捨五入のルールがある場合や、特定のデータ型に対して特別な処理を行いたい場合などです。
また、標準ライブラリの関数では対応できない特殊なケースにも対応できます。
自作関数の実装例
以下は、自作の四捨五入関数の実装例です。
この関数は、引数として与えられた浮動小数点数を四捨五入して整数に変換します。
#include <stdio.h>
int custom_round(double num) {
if (num >= 0) {
return (int)(num + 0.5); // 正の数の場合
} else {
return (int)(num - 0.5); // 負の数の場合
}
}
int main() {
double num1 = 3.6;
double num2 = -2.3;
num1 = custom_round(num1); // 4
num2 = custom_round(num2); // -2
return 0;
}
このプログラムを実行すると、自作の四捨五入関数による結果が代入されます。
正の数と負の数の両方に対応していることがわかります。
以上のように、C言語では標準ライブラリを利用した四捨五入の方法や、自作の関数を作成する方法があり、用途に応じて使い分けることができます。
printf関数での表示方法
C言語において、printf関数
は標準出力にデータを表示するための非常に重要な関数です。
ここでは、printf関数
の基本的な使い方や、四捨五入した結果を表示する方法について詳しく解説します。
基本的なprintfの使い方
printf関数
は、文字列をフォーマットして出力するために使用されます。
基本的な使い方は以下の通りです。
#include <stdio.h>
int main() {
printf("Hello, World!\n"); // "Hello, World!"を表示
return 0;
}
この例では、printf関数
を使って Hello, World!
という文字列を表示しています。
\n
は改行を意味します。
printf関数の基本構文
printf関数
の基本構文は次のようになります。
printf("フォーマット文字列", 引数1, 引数2, ...);
フォーマット文字列には、表示したい内容とともに、引数の値を埋め込むためのフォーマット指定子が含まれます。
フォーマット指定子の解説
フォーマット指定子は、printf関数
が引数をどのように表示するかを指定するためのものです。
主なフォーマット指定子は以下の通りです。
書式指定子 | 説明 |
---|---|
%d | 整数を表示 |
%f | 浮動小数点数を表示 |
%s | 文字列を表示 |
%c | 文字を表示 |
例えば、整数を表示する場合は次のように書きます。
int num = 10;
printf("数値は: %d\n", num); // "数値は: 10"を表示
四捨五入した結果の表示
四捨五入した結果を表示する場合、まずは四捨五入を行い、その結果をprintf関数
で表示します。
例えば、round()関数
を使って四捨五入した値を表示する場合は次のようになります。
#include <stdio.h>
#include <math.h>
int main() {
double value = 3.6;
double roundedValue = round(value); // 四捨五入
printf("四捨五入した結果: %.0f\n", roundedValue); // 結果を表示
return 0;
}
この例では、3.6
を四捨五入して4
を表示しています。
%.0f
は小数点以下を表示しないことを意味します。
小数点以下の桁数を指定する方法
printf関数
では、小数点以下の桁数を指定することもできます。
例えば、浮動小数点数を小数点以下2桁で表示したい場合は、次のように書きます。
double value = 3.14159;
printf("小数点以下2桁: %.2f\n", value); // "小数点以下2桁: 3.14"を表示
ここで、%.2f
は小数点以下2桁まで表示することを意味します。
四捨五入した値をprintfで表示する例
最後に、四捨五入した値を小数点以下2桁で表示する例を見てみましょう。
#include <stdio.h>
#include <math.h>
int main() {
double value = 3.14159;
double roundedValue = round(value * 100) / 100; // 小数点以下2桁で四捨五入
printf("四捨五入した結果: %.2f\n", roundedValue); // 結果を表示
return 0;
}
この例では、3.14159
を小数点以下2桁で四捨五入し、3.14
を表示しています。
round(value * 100) / 100
の部分で、100倍してから四捨五入し、再び100で割ることで小数点以下2桁に調整しています。
以上が、C言語におけるprintf関数
を使った四捨五入した結果の表示方法です。
これを活用することで、数値を見やすく表示することができます。