我正在阅读 Norman Cohen 的 Ada 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;
如果我在 Long_Float 计算中需要 Two_Pi,这就是我所需要的。我理解对了吗?有了类似的理解,那么
Two_Pi: CONSTANT := 2.0 * Ada.Numerics.Pi;
在浮点类型计算中也将相关,编译器将仅提供所需的精度位数。
非常感谢...