私はこれを使用しました:
long double f =79228162514264337593543950336.0;//maximum ; 2 ^ 96 because f is 12 bytes
cout.precision(30);
cout<<f;
しかし、いくつかの数字は間違っています。なぜ ?
私はこれを使用しました:
long double f =79228162514264337593543950336.0;//maximum ; 2 ^ 96 because f is 12 bytes
cout.precision(30);
cout<<f;
しかし、いくつかの数字は間違っています。なぜ ?
long double
リテラルの正しいサフィックスは次のL
とおりです。
long double f =79228162514264337593543950336.0L;
実装で提供される long double のサイズ (または、LDBL_DIGITS に対してどのような値が表示されるか)。多くの場合、最大 20 桁の有効 (10 進数) 桁を持つ 80 ビット タイプです。特に、浮動小数点型は仮数 (仮数) と指数に分割されるため、全体で 12 バイトの場合、仮数が12 ビットにならないため、12 バイトを期待することはできません。精度の価値。