我一直在做一些阅读,并且我很难理解如何解释“数字x”的东西。 I.E.Ada Digits Confusion
type something is digits 6
我知道它是6位数的精度,但我想我是什么混在一起是什么意思。
1)Y.XXXXXX(6X的),
2)XXX.XXX(任意数量的数字,只是将永远是他们的6计数两者前后尾数)
...
我只是想了解数字6(或数字n更通用)的范围是什么,是否有一个公式,我可以简单地插入以确定我的范围是什么类型是一些数字?
我一直在做一些阅读,并且我很难理解如何解释“数字x”的东西。 I.E.Ada Digits Confusion
type something is digits 6
我知道它是6位数的精度,但我想我是什么混在一起是什么意思。
1)Y.XXXXXX(6X的),
2)XXX.XXX(任意数量的数字,只是将永远是他们的6计数两者前后尾数)
...
我只是想了解数字6(或数字n更通用)的范围是什么,是否有一个公式,我可以简单地插入以确定我的范围是什么类型是一些数字?
用digits
声明的类型是浮点类型,类似于Float
或Long_Float
。
6
是“ 浮点类型所需的最小有效小数位数”。例如,所有下面会合理地精确地表示(但不是精确地):
type My_Real is digits 6;
X: My_Real := 1.23456;
Y: My_Real := 12345.6;
Z: My_Real := 1.23456E7;
在实践中,通常有一个给定的系统上只有2或3个潜在的浮点类型。编译器会选择一个合适的作为声明的基础类型。实际上,用digits 2
和digits 6
声明的两种类型可能具有完全相同的表示和精度。
理解短语“不是”确切地说是“需要理解超出单个问题范围的浮点数,但如果您熟悉其他语言中的浮点数,则这是相同的总体思路。
如果你想大致了解什么是浮点数以及它是如何工作的,Wikipedia Article并不差。 David Goldberg的经典论文“每个计算机科学家关于浮点运算应该知道什么”的更为先进的处理方法是,可以将here作为网页,here作为PDF。
是否有可能得到一个W:My_Real:= 123456.0? – onaclov2000 2012-04-12 23:13:10
@ onaclov2000:当然。您可能想阅读[本文](http://en.wikipedia.org/wiki/Floating_point)。您最终可能会希望阅读Goldberg的“每位计算机科学家应了解的浮点算术知识”。 – 2012-04-12 23:25:18