C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のround()関数とは?使い方とオーバーロードの種類をわかりやすく解説

C++のround()関数は、引数として渡されたdouble型・float型・long double型の値を、最も近い整数値に四捨五入するための関数です。C++プログラムでround()関数を使用する際は、ヘッダーファイル「<cmath>」または「<tgmath>」をインクルードします。

round()関数のオーバーロード(C++11以降)

C++11標準以降では、round()関数には以下のようなオーバーロードが定義されています。

  • double round( double D )
  • float round( float F )
  • long double round( long double LD )
  • double round( T var )

注意: 戻り値は「最も近い整数」ですが、その値は浮動小数点数として表現されます。たとえば、2.3に対して返されるのは「2」ではなく「2.0」となります。

また、小数部がちょうど0.5の場合は、ゼロから遠ざかる方向へ丸められる点にも留意してください。

round()関数の使用例

次のプログラムは、C++におけるround()関数の基本的な使い方を示したものです。正の値だけでなく、負の値に対する挙動も確認できます。

#include <cmath>
#include <iostream>
int main(){
    double num1=10.5;
    double num2=10.3;
    double num3=9.7;
    std::cout << "Nearest integer after round("<<num1<<") :" << round(num1)<< "\n";
    std::cout << "Nearest integer after round("<<num2<<") :" << round(num2)<< "\n";
    std::cout << "Nearest integer after round("<<num3<<") :" << round(num3)<< "\n";
    num1=-9.3;
    num2=-0.3;
    num3=-9.9;
    std::cout << "Nearest integer after round("<<num1<<") :" << round(num1)<< "\n";
    std::cout << "Nearest integer after round("<<num2<<") :" << round(num2)<< "\n";
    std::cout << "Nearest integer after round("<<num3<<") :" << round(num3)<< "\n";
    return 0;
}

実行結果

Nearest integer after round(10.5) :11
Nearest integer after round(10.3) :10
Nearest integer after round(9.7) :10
Nearest integer after round(-9.3) :-9
Nearest integer after round(-0.3) :-0
Nearest integer after round(-9.9) :-10

実行結果のポイント

出力を見ると、10.5は11に、9.7は10に丸められていることがわかります。負の値の場合も同様に、-9.3は-9へ、-9.9は-10へと、絶対値が大きくなる方向(ゼロから遠ざかる方向)に丸められます。このようにround()関数は、正負にかかわらず「四捨五入」に近い動作をするのが特徴です。

  1. C++におけるカプセル化の基本と実装方法

    カプセル化(Encapsulation)とは、データとそのデータを操作するメソッドを1つのコンポーネントにまとめ、外部からの干渉から保護するオブジェクト指向プログラミングの重要な概念です。カプセル化を実現することで、「データ隠蔽(Data Hiding)」という非常に重要な概念が生まれます。C++では、ユーザー定義型であるクラスを使用してカプセル化を実現します。クラスは、データメンバとそれらを操作するメンバ関数をひとまとめにしたものです。以下に、C++のクラスを使ってカプセル化を表現するサンプルプログラムを示します。実装例#include <iostream> using name

  2. C++の識別子とは?命名ルールと具体例をわかりやすく解説

    C++における識別子(identifier)とは、変数、関数、クラス、モジュールなど、プログラマが定義するさまざまな要素に名前を付けて識別するために使われる名称です。識別子の命名には以下のルールがあります。先頭は半角アルファベットの大文字(A〜Z)、小文字(a〜z)、またはアンダースコア(_)で始める必要があります。2文字目以降は、英字・数字(0〜9)・アンダースコアを自由に組み合わせられます。識別子の中に「@」「$」「%」などの記号(句読点・特殊文字)を使うことはできません。大文字と小文字は区別されるC++は大文字と小文字を厳密に区別するプログラミング言語です。そのため、「Manpower」