我讀諾曼·科恩的阿達95本書和129頁上,我們有常量聲明:阿達:常量聲明
Pi: constant Float := 3.1415926536
和
Pi: constant := 3.1415926536
第二個聲明被認爲是解釋爲,我引用:「具有適當範圍的任何浮點型定點類型」。我的問題是說,一個正在與Long_Float精度,然後例如聲明一個恆定的發言權2 * PI做一個有明確聲明像
Two_Pi : CONSTANT Long_Float := 2.0 * 3.1415926536
或仍然要好得多:
Two_Pi: CONSTANT Long_Float := 2.0 * Ada.Numerics.Pi;
(中第二個聲明利用小數點後的更多數字)?
將
Two_Pi : CONSTANT := 2.0 * 3.1415926536
或更好
Two_Pi: CONSTANT := 2.0 * Ada.Numerics.Pi;
是作爲本書籍的權利一樣好,這樣的Ada編譯會知道例如,如果我在一家Long_Float計算使用Two_Pi,然後編譯器會提供所需數量的精度數字?由於pI值3.1415926536不是Long_Float類型(因爲它具有較少的精度位數),我想這最後聲明即
Two_Pi: CONSTANT := 2.0 * Ada.Numerics.Pi;
將所有需要的,如果我需要Two_Pi在Long_Float計算。我理解對嗎?具有類似的瞭解,那麼
Two_Pi: CONSTANT := 2.0 * Ada.Numerics.Pi;
將是相關的,可以在一個浮子式計算和編譯器將只供給所需數量的精度位數。
非常感謝......
謝謝。如果我理解正確,那麼我不需要添加Long_Float。您給出的表達式足以讓編譯器知道使用何種精度。 – yCalleecharan 2010-07-05 16:27:28
我使用Adacore的GNAT GPL編譯器。如果我理解正確,那麼這個GNU GMP和MPFR數值庫僅適用於GCC。我對嗎? – yCalleecharan 2010-07-05 16:34:10
@yCalleecharan:分別是和不是;往上看。 – trashgod 2010-07-05 17:19:51