私はAdaを初めて使用し、倍精度型を提供するかどうかを確認しようとしていました。フロートがあり、
Put( Integer'Image( Float'digits ) );
私のマシンでは6の値が返されますが、これは数値計算には不十分です。
AdaにはCのようにdouble型とlongdouble型がありますか?
どうもありがとう...
それよりも少し複雑です。
コンパイラがサポートしなければならない唯一の事前定義された浮動小数点型はですFloat
。コンパイラはオプションでとをサポートする場合がShort_Float
ありますLong_Float
。コンパイラのドキュメントの付録Fを調べて、サポートされているものを確認できるはずです。
実際には、コンパイラはほぼ確実Float
に32ビットIEEE浮動小数点数およびLong_Float
64ビットとして定義します。float
Cは、 andでもこのように機能することに注意してくださいdouble
。Cは実際にはそれらのサイズを定義していません。
絶対に証明書の精度が必要な場合(たとえば、IEEE 64ビットを使用する必要のある外部のものとデータを共有している場合)、おそらくその精度で独自のfloatタイプを定義する必要があります。これにより、コードを移動先のプラットフォームやコンパイラに移植できるようになるか、問題を修正できるようにコンパイラエラーが発生するようになります。