我一直在做一些閱讀,並且我很難理解如何解釋「數字x」的東西。 I.E.Ada Digits Confusion
type something is digits 6
我知道它是6位數的精度,但我想我是什麼混在一起是什麼意思。
1)Y.XXXXXX(6X的),
2)XXX.XXX(任意數量的數字,只是將永遠是他們的6計數兩者前後尾數)
...
我只是想了解數字6(或數字n更通用)的範圍是什麼,是否有一個公式,我可以簡單地插入以確定我的範圍是什麼類型是一些數字?
我一直在做一些閱讀,並且我很難理解如何解釋「數字x」的東西。 I.E.Ada Digits Confusion
type something is digits 6
我知道它是6位數的精度,但我想我是什麼混在一起是什麼意思。
1)Y.XXXXXX(6X的),
2)XXX.XXX(任意數量的數字,只是將永遠是他們的6計數兩者前後尾數)
...
我只是想了解數字6(或數字n更通用)的範圍是什麼,是否有一個公式,我可以簡單地插入以確定我的範圍是什麼類型是一些數字?
用digits
聲明的類型是浮點類型,類似於Float
或Long_Float
。
6
是「 浮點類型所需的最小有效小數位數」。例如,所有下面會合理地精確地表示(但不是精確地):
type My_Real is digits 6;
X: My_Real := 1.23456;
Y: My_Real := 12345.6;
Z: My_Real := 1.23456E7;
在實踐中,通常有一個給定的系統上只有2或3個潛在的浮點類型。編譯器會選擇一個合適的作爲聲明的基礎類型。實際上,用digits 2
和digits 6
聲明的兩種類型可能具有完全相同的表示和精度。
理解短語「不是」確切地說是「需要理解超出單個問題範圍的浮點數,但如果您熟悉其他語言中的浮點數,則這是相同的總體思路。
如果你想大致瞭解什麼是浮點數以及它是如何工作的,Wikipedia Article並不差。 David Goldberg的經典論文「每個計算機科學家關於浮點運算應該知道什麼」的更爲先進的處理方法是,可以將here作爲網頁,here作爲PDF。
是否有可能得到一個W:My_Real:= 123456.0? – onaclov2000 2012-04-12 23:13:10
@ onaclov2000:當然。您可能想閱讀[本文](http://en.wikipedia.org/wiki/Floating_point)。您最終可能會希望閱讀Goldberg的「每位計算機科學家應瞭解的浮點算術知識」。 – 2012-04-12 23:25:18