C言語で値を「四捨五入」する方法

C言語

 こんにちは。今回は、C言語を使い、値を四捨五入する方法を紹介していきます。四捨五入する方法、「関数を使う方法」「関数を使わず自力で行う方法」があります。

1. 関数を使わずに四捨五入する方法

 では、まず関数を使わずに四捨五入する方法を紹介します。

 結論から言ってしまうと、四捨五入は計算結果に0.5を足せばできます。

#include <stdio.h>

int main()
{
    double x = 4.6;    //四捨五入したい値
    int anser;

    anser = x + 0.5;     //少数点以下切り捨て
    printf("%d",ans);  //5
}

 ↑はサンプルコードです。double型の変数xに0.5を足すことでもし、xの小数点第一位が0.5以上なら、繰り上げられます。

 また、double型のxをint型のansに代入すると、小数点は切り捨てられるため、結果的に四捨五入できたことになります。

 以上が関数を使わずに四捨五入する方法です。

2. 関数を使って四捨五入する方法

 次に関数を使って四捨五入する方法を紹介します。

 四捨五入を行う関数は、「round関数」です。math.hをincludeする必要があります。

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

int main()
{
	double x = 4.5;
	int anser;

	anser = round(x);
	printf("%d", ans);
}

↑がサンプルコードです。round関数は引数の値を、四捨五入してdouble型で返します。

 注意点ですが、割り算などで四捨五入したい値xがint型の場合はキャストをしましょう。

/*int型同士の割り算の場合*/
#include <stdio.h>
#include <math.h>

int main()
{
    int a = 5;
    int b = 3;
    int anser;

    anser = round((double)a / (double)b); //int型のa,bをdouble型でキャスト

    printf("%d", anser);
}

 ↑キャストした場合のサンプルコード。

まとめ

 今回は、C言語で値を四捨五入する方法を解説しました。

 関数を使わない場合は、値に0.5を足し、int型にします。

 関数を使わない場合は、値をround関数の引数に指定しま

 最後まで読んで頂き、ありがとうございました。

コメント

タイトルとURLをコピーしました