5

私はいくつかの読書をしてきましたが、「数字x」を解釈する方法を理解するのに苦労しています. IE

type something is digits 6

6桁の精度だと思いますが、私が混乱しているのは、それが何を意味するのかだと思います。

1) Y.XXXXXX (6X's)、

2) XXX.XXX (任意の桁数。仮数の前後を数えて常に 6 桁になります)

...

数字6(またはより一般的には数字n)の範囲を理解しようとしているだけです。数字のある型の範囲を特定するために簡単にプラグインできる式はありますか?

4

1 に答える 1

9

で宣言された型は、 ordigitsと同様に浮動小数点型です。FloatLong_Float

これ6は、「浮動小数点型に必要な有効 10 進数の最小桁数」です。たとえば、次のすべては合理的に正確に表現されます (ただし、正確ではありません)。

type My_Real is digits 6;
X: My_Real := 1.23456;
Y: My_Real := 12345.6;
Z: My_Real := 1.23456E7;

実際には、通常、特定のシステムには 2 つまたは 3 つの基になる浮動小数点型しかありません。コンパイラは、宣言の基になる型として適切なものを選択します。実際には、 と で宣言された 2 つの型は、digits 2おそらくdigits 6まったく同じ表現と精度を持ちます。

「正確ではない」というフレーズを理解するには、単一の質問の範囲をはるかに超える浮動小数点の理解が必要ですが、他の言語の浮動小数点に精通している場合、それは同じ一般的な考え方です。

浮動小数点とは何か、またどのように機能するかについての一般的な理解が必要な場合は、ウィキペディアの記事は悪くありません。より高度な処理は、David Goldberg の古典的な論文「What Every Computer Scientist Should Know About Floating-Point Arithmetic」で、Web ページとしてここと PDF としてここから入手できます。

于 2012-04-12T22:28:10.007 に答える