浮動小数点数 - 倍精度
CoddyのCジャーニー「基礎」セクションの一部。レッスン 7/63。
floatとdoubleは、Cで小数を格納するために使われるデータ型です。
float型の変数を宣言します。
float price = 19.99f;「f」接尾辞に注目してください。これは、Cにこの値がfloat型であることを伝えます。
double型の変数を宣言します。
double pi = 3.14159265359;floatとdoubleの主な違い:
- 精度:doubleはfloatより精度が高い
- float:約7桁の十進数
- double:約15桁の十進数
- サイズ:
- Float: 4バイト
- Double: 8バイト
- 範囲:
- Float: 1.2E-38 to 3.4E+38
- Double: 2.3E-308 to 1.7E+308
浮動小数点数の値を出力しましょう:
float temperature = 98.6f;
printf("Temperature is %f degrees\n", temperature);小数点以下の桁数を指定して出力する:
printf("Temperature is %.1f degrees\n", temperature);次のように表示されます:「温度は98.6度です」
チャレンジ
簡単次のプログラムを書きましょう。
celsiusという名前のfloat型変数を宣言しますfahrenheitという名前のdouble型変数を宣言しますcelsiusに値25.0を代入します- 次の式を使って、摂氏を華氏に変換します:
fahrenheit = (celsius * 9.0/5.0) + 32.0 - 結果を次のように出力します
25.0 degrees Celsius is equal to 77.0 degrees Fahrenheit
出力では、小数点以下を必ず1桁だけ表示してください。CelsiusとFahrenheitの綴りは、完全に一致させる必要があります。
1つのprintfで両方の変数を出力するには、それぞれの数値のプレースホルダーとして%.1fを使用します。celsiusとfahrenheitは、実際に使う変数名に置き換えてください。
printf("%.1f degrees Celsius is equal to %.1f degrees Fahrenheit\n", celsius, fahrenheit);ここでは、最初の%.1fがcelsiusの値に置き換えられ、2番目の%.1fがfahrenheitの値に置き換えられます。最後の\nは、カーソルを次の行に移動します。
自分で試してみよう
#include <stdio.h>
int main() {
// celsius と fahrenheit を宣言し、ここで変換する
printf("%.1f degrees Celsius is equal to %.1f degrees Fahrenheit\n", celsius, fahrenheit);
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Cオンラインコンパイラ