我对 Ada 很陌生,想看看它是否提供双精度类型。我看到我们有浮动和
Put( Integer'Image( Float'digits ) );
在我的机器上给出的值为 6,这对于数值计算来说是不够的。
Ada 在 C 中是否有 double 和 long double 类型?
非常感谢...
它比这复杂一点。
编译器必须支持的唯一预定义浮点类型是Float
. 编译器可以选择支持Short_Float
和Long_Float
. 您应该能够查看编译器文档的附录 F 以了解它支持的内容。
实际上,您的编译器几乎可以肯定地定义Float
为 32 位 IEEE 浮点数和Long_Float
64 位。float
请注意,C 与它的and几乎也以这种方式工作double
。C实际上并没有定义它们的大小。
如果您绝对必须具有一定的精度(例如:您正在与必须使用 IEEE 64 位的外部对象共享数据),那么您可能应该以该精度定义自己的浮点类型。这将确保您的代码可以移植到您将其移动到的任何平台或编译器,或者它会产生编译器错误,以便您可以解决问题。