【C言語】型キャストでは小数点以下が切り捨てられる?切り上げ?

この記事では、C言語における型キャストの仕様について解説します。

目次から探す

型キャストの仕様

プログラミングにおいて、型キャストはあるデータ型を別のデータ型に変換するための方法です。

C言語では、特に整数型にキャストする場合に小数点以下がどのように扱われるかについて注意が必要です。

整数型にキャストすると小数点以下が切り捨てられる

C言語では、整数型にキャストすると小数点以下が切り捨てられます。

これは、キャスト元のデータ型が浮動小数点数型であっても同様です。

例えば、以下のようなコードを考えてみましょう。

#include <stdio.h>
int main() {
    double num = 3.14;
    int integer = (int)num;
    
    printf("numの値は %f です\n", num);
    printf("integerの値は %d です\n", integer);
    
    return 0;
}

このコードでは、変数numに浮動小数点数型の値3.14を代入し、それを整数型にキャストして変数integerに代入しています。

そして、numintegerの値をそれぞれ表示しています。

実行結果は以下のようになります。

numの値は 3.140000 です
integerの値は 3 です

この結果からわかるように、浮動小数点数型の値3.14を整数型にキャストすると、小数点以下が切り捨てられて3となります。

※ C言語では、型キャストを行う際にはキャスト演算子(型名)を使用します。

キャスト元のデータ型を括弧内に指定し、キャスト先のデータ型に変換します。

この仕様に注意してプログラミングを行うことで、意図した結果を得ることができます。

目次から探す