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

C /C++でのfloatとdoubleの違い


C / C ++では、浮動小数点数、つまり小数点以下の数値を表すためにfloatおよびdoubleデータ型が必要であることがわかっているため、これらのデータ型の両方によって提供される精度に基づいて、両方を区別できます。それらの。

簡単に言うと、doubleの精度はfloatの2倍であるということです。つまり、doubleデータ型の精度はfloatデータ型の精度の2倍です。

精度の数に関しては、doubleは浮動小数点数に対して64ビットの精度(符号は1ビット、指数は11ビット、値は52 *ビット)であると言えます。つまり、doubleは小数点以下15桁の精度です。 。floatの浮動小数点数の精度は32ビット(指数の場合は8ビット、値の場合は23 *)ですが、floatの精度は10進数で7桁です。

doubleはflotに比べて精度が高いため、floatデータ型が占めるメモリの2倍のメモリを占めることは明らかです。

また、両方のデータ型の範囲は、±3.40282347E + 38F、つまり浮動小数点の場合は6〜7有効数字、±1.79769313486231570E + 308、つまり倍精度の場合は15〜16有効数字として表すことができます。

上記の点に基づいて、高精度が必要でなく、プログラムが格納するのに10進数の膨大な配列のみが必要な場合、floatはデータを格納し、より高い精度が必要な場合にメモリを節約する費用効果の高い方法であると言えます。ダブルに行く。


  1. C /C++でのconstint*、const int * const、およびint const *の違いは?

    上記の記号は、次のことを意味します- int* - Pointer to int. This one is pretty obvious. int const * - Pointer to const int. int * const - Const pointer to int int const * const - Const pointer to const int また、-にも注意してください const int * And int const * are the same. const int * const And int const * const are the same.

  2. C#のfloat、double、decimalの違いは何ですか?

    Float、double、decimalはすべてC#の値型です。 値型変数には、値を直接割り当てることができます。これらは、System.ValueTypeクラスから派生しています。値の型にはデータが直接含まれています。 浮動小数点型 Floatは、範囲が3.4 x 10 38の32ビット単精度浮動小数点型です。 〜+ 3.4 x 10 38 メモリサイズは4バイトです。 float a = 3.5f; 二重値型 Doubleは、範囲(+/-)5.0 x 10 -324の64ビット倍精度浮動小数点型です。 〜(+/-)1.7 x 10 308 メモリサイズは8バ