【发布时间】:2011-03-11 20:05:37
【问题描述】:
我正在阅读 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;
在浮点类型计算中也将相关,编译器将仅提供所需的精度位数。
非常感谢...
【问题讨论】:
标签: floating-point constants ada