single
Double型(倍精度数値)
メニューを表示するにはスワイプしてください
float(7 桁の10進精度)では精度が十分でない場合があります。しかし、C++ には解決策があります:double。15 桁の10進精度を持ち、float よりもはるかに高精度です。double の使用方法はこれまでと同じ構文です。
double.
1double num = 3.14159265359;
デフォルトでは、cout は浮動小数点数を有効数字6桁で表示します。そのため、float と double の違いは表示されません。より大きな精度を設定するには、再び std::cout << std::setprecision(15); を使用できます(これで有効数字15桁に設定されます)。
<iomanip> を使用するために std::setprecision() をインクルードすることを忘れないでください。
main.cpp
123456789101112131415#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }
doubleでより高い精度が実現される仕組み
より多くのメモリを使用することによるもの。float型は4バイト、double型は8バイトのメモリを消費。
long double型も存在。サイズは8バイト(doubleと同じ)から16バイトまで幅がある。システム上でlong doubleのサイズを確認するには、次のコードを使用。
sizeof.h
1std::cout << sizeof(long double);
さらに、値を代入する際には L を追加する必要があります(そうしないと、その値は double の精度で代入されます)。次の例を参照してください。
double.h
1long double pi = 3.141592653589793238462643L;
出力にゼロが表示された場合は、上記のように値を正確に代入しているか確認してください(1/3., 1/3.L)。
スワイプしてコーディングを開始
異なるデータ型を用いて (1/3)² を計算する必要があります。そのために、float、double、long double 型の変数に 1/3 の値を代入します。次に、それぞれの変数の値を自乗した結果を出力します。
float型の変数に1/3.の値を代入。double型の変数に1/3.の値を代入。long double型の変数に1/3.Lの値を代入。
注意:long doubleは本システム上で 16 バイトのメモリを使用します- 出力の精度を
setprecision(25)で小数点以下 25 桁に設定。 - それぞれの値を自乗した結果を出力。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください