Ada的双精度?

yCa*_*ran 7 precision double numeric ada

我对Ada很新,并试图看看它是否提供双精度型.我看到我们有浮动和

Put( Integer'Image( Float'digits ) );
Run Code Online (Sandbox Code Playgroud)

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

Ada有双重和长双重类型吗?

非常感谢...

T.E*_*.D. 7

这比那复杂一点.

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

实际上,您的编译器几乎可以定义Float为32位IEEE浮点数和Long_Float64位数.需要注意的是Ç非常作品也是这样的,其floatdouble.C实际上并没有定义那些的大小.

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

  • x86上的Gnat实际上支持一个(完全不可移植的)Long_Long_Float,它使用了英特尔FPU所拥有的所有80位数字,如果你想要去野外. (3认同)

mam*_*ing 6

你可以创建你喜欢的任何尺寸浮动.很长一段时间会是:

type My_Long_Float is digits 11;
Run Code Online (Sandbox Code Playgroud)

Wiki Books对于这样的事情是一个很好的参考.