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

C言語におけるfloatとdoubleの違いを徹底解説

C言語で小数を扱う際に使われる代表的なデータ型が「float」と「double」です。どちらも浮動小数点数を表現するための型ですが、メモリサイズや精度が異なります。本記事では、それぞれの特徴と使い方をサンプルコード付きでわかりやすく解説します。

float(単精度浮動小数点型)とは

floatは浮動小数点数を表現するためのデータ型で、32ビットのIEEE 754単精度浮動小数点数として実装されています。内部構成は以下の通りです。

  • 符号部:1ビット
  • 指数部:8ビット
  • 仮数部:23ビット

floatの精度は10進数で約6桁です。そのため、より高い精度が必要な計算には後述のdoubleを使うのが一般的です。

floatの宣言方法

float 変数名;

floatの使用例

#include<stdio.h>
#include<string.h>
int main() {
    float x = 10.327;
    int y = 28;
    printf("float型の値 : %f\n", x);
    printf("float型とint型の合計 : %f\n", (x+y));
    return 0;
}

実行結果

float型の値 : 10.327000
float型とint型の合計 : 38.327000

double(倍精度浮動小数点型)とは

doubleも浮動小数点数を表現するためのデータ型ですが、64ビットのIEEE 754倍精度浮動小数点数として実装されており、floatよりも格段に高い精度を持っています。10進数で約15桁の有効数字を扱えるため、科学技術計算など高精度が求められる場面で広く使用されます。

doubleの宣言方法

double 変数名;

doubleの使用例

#include<stdio.h>
#include<string.h>
int main() {
    float x = 10.327;
    double y = 4244.546;
    int z = 28;
    printf("float型の値 : %f\n", x);
    printf("double型の値 : %f\n", y);
    printf("float型・double型・int型の合計 : %f\n", (x+y+z));
    return 0;
}

実行結果

float型の値 : 10.327000
double型の値 : 4244.546000
float型・double型・int型の合計 : 4282.873000

floatとdoubleの比較まとめ

項目floatdouble
サイズ32ビット(4バイト)64ビット(8バイト)
精度約6桁(単精度)約15桁(倍精度)
用途メモリ節約が優先される場合高精度な計算が必要な場合

このように、floatとdoubleはどちらも浮動小数点数を扱う型ですが、精度とメモリ消費量にトレードオフの関係があります。用途に応じて適切な型を選択することが、正確で効率的なプログラムを作るポイントです。

  1. C++で二重積分を計算するプログラム|シンプソン1/3則による数値積分の実装

    変数xの下限・上限、変数yの下限・上限、そしてx・yそれぞれの刻み幅(ステップ幅)が与えられたとき、二重積分を数値的に計算し、その結果を表示するのが本記事のテーマです。 入出力の例 入力: xの刻み幅 = 1.2 yの刻み幅 = 0.54 xの下限 = 1.3 xの上限 = 2.1 yの下限 = 1.0 yの上限 = 2.1 出力: double integration is : 2.1 計算のアプローチ 本プログラムでは、以下の手順で二重積分を求めます。 xとyの上限・下限の値に加えて、x・yそれぞれの刻み幅を入力として受け取ります。 二重積分の計算にはシンプソン1/3則(Simpson

  2. ダブルVPNとは?仕組みから5つの設定方法まで徹底解説

    VPNの最新トレンドをチェックしている方なら、「ダブルVPN(Double VPN)」という新しい概念を目にしたことがあるかもしれません。名前の通り、通常のVPNサービスにさらにプライバシー保護のレイヤーをもう1つ追加する仕組みです。実現方法は複数あり、すでに一部のVPNプロバイダーがこの機能を提供し始めています。しかし疑問なのは、ダブルVPNがユーザーにとって本当に実用的なメリットをもたらすのか、それとも単なる宣伝文句にすぎないのかという点です。さらに重要なのは、この特殊な接続をどのように構築するかということです。本記事では、ダブルVPNを実現するさまざまな方法をすべて解説します。注意:この