7

我对 Ada 很陌生,想看看它是否提供双精度类型。我看到我们有浮动和

Put( Integer'Image( Float'digits ) );

在我的机器上给出的值为 6,这对于数值计算来说是不够的。

Ada 在 C 中是否有 double 和 long double 类型?

非常感谢...

4

2 回答 2

7

它比这复杂一点。

编译器必须支持的唯一预定义浮点类型是Float. 编译器可以选择支持Short_FloatLong_Float. 您应该能够查看编译器文档的附录 F 以了解它支持的内容。

实际上,您的编译器几乎可以肯定地定义Float为 32 位 IEEE 浮点数和Long_Float64 位。float请注意,C 与它的and几乎也以这种方式工作double。C实际上并没有定义它们的大小。

如果您绝对必须具有一定的精度(例如:您正在与必须使用 IEEE 64 位的外部对象共享数据),那么您可能应该以该精度定义自己的浮点类型。这将确保您的代码可以移植到您将其移动到的任何平台或编译器,或者它会产生编译器错误,以便您可以解决问题。

于 2010-04-20T19:52:10.867 回答
6

您可以创建您喜欢的任何大小的浮动。很长一段时间会是:

type My_Long_Float is digits 11;

Wiki Books是此类事情的一个很好的参考。

于 2010-04-20T20:00:29.003 回答