C言語 doubleの使い方

この記事のポイント

C言語におけるdouble型は、高精度な小数計算を可能にする重要な型です。本解説では、double型の基本機能、float型との選択基準、そして実際の開発で参考となるコード例について順を追って説明します。

  • C言語で高精度な浮動小数点数を扱うためのdouble型の基本機能
  • float型との違いと適切な使い分けの判断基準
  • 実際の開発現場で使える具体的なプログラム作成手法

これらのポイントを意識して理解することで、C言語の仕組みへの理解が深まります。状況に応じて適切なデータ型を選び、活用する上でも大切な知識です。

目次

doubleとは?

C言語のdouble型は、浮動小数点数を保持するための代表的なデータ型です。float型より高精度で、通常8バイトのメモリを消費します。倍精度浮動小数点数とも呼ばれ、有効数字は約15〜17桁です。

特に、計算精度が必要とされる科学技術計算や金融関連の処理では、double型が頻繁に用いられ、実務では欠かせません。IEEE 754標準に準拠しているため、さまざまなプラットフォームで一貫した結果が得られます。この特徴から、小数点以下を含む計算で一定の精度が求められる場合には、float型よりも double型を選択するのが一般的です。

【関連】
C言語をもっと詳しく学ぶならpaizaラーニング

基本構文

ここでは、C言語でdouble型を使用する際の基本的な構文について説明します。変数の宣言は「double 変数名;」と記述し、必要に応じて同時に初期化することも可能です。printf関数で出力する際には「%f」または「%lf」フォーマット指定子を使用します。リテラルとして小数を記述する場合は、整数部分と小数部分をピリオドで区切ります。それでは、これらの点を踏まえた上で、次に示すコード例を確認していきましょう。

#include <stdio.h> int main() { double num1; double num2 = 3.14159; num1 = 2.71828; printf("num1 = %f\n", num1); printf("num2 = %.2f\n", num2); return 0; }

出力結果

num1 = 2.718280
num2 = 3.14
#include <stdio.h> int main() { double temperature = 36.5; double result; result = temperature * 1.8 + 32; printf( "摂氏%.1f度は華氏%.1f度です\n", temperature, result ); return 0; }

出力結果

摂氏36.5度は華氏97.7度です

実用例

ここからは、C言語のdouble型を実際のプログラムで使用する際の具体的なコード例を紹介します。変数宣言から数学計算、配列やポインタとの組み合わせ、関数での活用まで、さまざまな場面での使い方を詳しく解説していきます。

各例では実際に動作するコードとその出力結果を併せて解説しており、初学者も理解しやすい内容です。これらの例を通じて、double型の特性や使い方を理解し、実際のプログラム開発で活用できるスキルを身につけてください。

基本的な変数宣言と代入

double型の基本的な変数宣言と値の代入方法を示すコードです。

#include <stdio.h> int main() { double cat_weight = 4.2; double dog_weight = 15.8; double total_weight; total_weight = cat_weight + dog_weight; printf("ネコの体重: %.1fkg\n", cat_weight); printf("イヌの体重: %.1fkg\n", dog_weight); printf("合計体重: %.1fkg\n", total_weight); return 0; }

出力結果

ネコの体重: 4.2kg
イヌの体重: 15.8kg
合計体重: 20.0kg

このコードではdouble型変数の宣言と初期化、ならびに四則演算の基本的な使用方法を示しています。

printf関数で指定している「%.1f」は、小数点以下を1桁まで表示するための書式指定子です。ペットの体重を計算する例を通して、double型が日常的な数値処理に適していることが分かります。このように、加算処理が正確に行われることで、浮動小数点演算の基本的な仕組みを確認できます。

数学計算での活用

円の面積計算を通じて、double型による数学的な計算処理を示すコードです。

#include <stdio.h> #define PI 3.14159265359 int main() { double radius = 5.0; double area; double circumference; area = PI * radius * radius; circumference = 2 * PI * radius; printf("半径: %.1f\n", radius); printf("面積: %.2f\n", area); printf("円周: %.2f\n", circumference); return 0; }

出力結果

半径: 5.0
面積: 78.54
円周: 31.42

このコードでは、数学定数PIを使用して円の面積と円周を計算しています。double型は計算誤差を抑えながら数値処理が行えるため、数学的な公式の処理にも適しています。さらに、define文によって定数を定義している点も重要です。

定数としてまとめておくことで、数式の意味が明確になり、後から修正や管理がしやすくなります。

配列としての利用

複数のdouble型データを配列で管理し、平均値を算出するコードです。

#include <stdio.h> int main() { double rabbit_weights[5] = {1.2, 1.8, 1.4, 1.6, 1.5}; double sum = 0.0; double average; int i; for (i = 0; i < 5; i++) { sum += rabbit_weights[i]; } average = sum / 5; printf("ウサギの平均体重: %.2fkg\n", average); return 0; }

出力結果

ウサギの平均体重: 1.50kg

double型の配列を宣言し、複数の値を格納したうえで、ループ処理によって平均値を計算するコード例です。配列の初期化時に複数の値をまとめて設定する方法や、for文を用いて各要素に順番にアクセスする方法を示しています。統計的な計算などでよく用いられる処理の流れを学習できる、実用性の高い例です。

ポインタとの組み合わせ

double型の変数をポインタ経由で操作し、値を変更するコードです。

#include <stdio.h> int main() { double elephant_weight = 3000.0; double* weight_ptr; weight_ptr = &elephant_weight; printf("変更前: %.1fkg\n", elephant_weight); *weight_ptr = 3200.5; printf("変更後: %.1fkg\n", elephant_weight); return 0; }

出力結果

変更前: 3000.0kg
変更後: 3200.5kg

上記は、double型変数へのポインタを用い、間接参照によって値を変更する方法を示すコード例です。アドレス演算子「&」でポインタに変数のアドレスを代入し、間接参照演算子「*」を用いて、ポインタ経由で値を変更しています。このコード例を通して、メモリを介したデータ操作の基本的な仕組みを把握しておきましょう。

関数での引数と戻り値

double型を引数として受け取り、計算結果をdouble型で返す関数のコードです。

#include <stdio.h> double calculate_bmi(double weight, double height) { return weight / (height * height); } int main() { double horse_weight = 450.0; double horse_height = 1.6; double bmi; bmi = calculate_bmi(horse_weight, horse_height); printf("BMI: %.2f\n", bmi); return 0; }

出力結果

BMI: 175.78

上記のコードは、double型の引数を受け取り、double型の結果を返す関数の基本形です。関数に値を渡して処理を行い、その結果を受け取るという一連の流れを通して、関数の基本的な役割を把握していきましょう。適切に関数を用いることで、同じ処理を効率よく再利用でき、コードの可読性も向上します。これは、プログラムを構造的に設計する考え方を身につける上でも重要です。

まとめ

C言語のdouble型の基本的な変数宣言から配列、ポインタ、関数での使用方法まで、さまざまな実用例を通じてdouble型の特性と活用方法について詳しく解説しました。

double型は高精度な浮動小数点数を扱うための基本的なデータ型であり、プログラム開発において重要です。通常は8バイトのメモリ領域を使用し、約15〜17桁の有効数字を保持できるため、科学計算や金融システムなど、計算精度が求められる処理で広く利用されています。

doubleの活躍する場面

  • 科学技術計算における高精度な数値処理
  • 金融システムでの正確な金額計算
  • 3Dグラフィックスでの座標変換処理

重要なポイント

  • float型より高い精度で小数点以下の計算が可能
  • IEEE 754標準準拠により異なる環境でも一貫した結果
  • メモリ使用量とのバランスを考慮した適切な型選択

このように、double型を適切に用いることで、計算結果の精度を高めたプログラムを作成できます。C言語で数値計算の正確さが求められる場面では有力な選択肢の一つとなるため、特徴を理解しておくことが重要です。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. C言語のリファレンス記事一覧
  4. C言語 doubleの使い方