我正在阅读Norman Cohen的Ada 95书籍,第129页有常量声明:
Pi: constant Float := 3.1415926536
and
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;
这个概念同样适用于浮点数计算,在编译时只提供所需的位数精度。
非常感谢...