Я читаю книгу Ады 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 будет знать, например, если я использую Two_Pi в расчете Long_Float, то компилятор будет предоставлять требуемое количество прецизионных цифр?Поскольку значение Pi 3.1415926536 не относится к типу Long_Float (так как в нем меньше цифр точности), я предполагаю, что последнее объявление, т.е.
Two_Pi: CONSTANT := 2.0 * Ada.Numerics.Pi;
, будет всем, что требуется, если мне понадобится Two_Pi в расчете Long_Float.Я правильно понимаю?С аналогичным пониманием, тогда
Two_Pi: CONSTANT := 2.0 * Ada.Numerics.Pi;
будет иметь отношение и к вычислению типа Float, и компилятор выдаст только необходимое количество прецизионных цифр.
Спасибо большое ...