Root /ArchiveAbout
()

Вещественные числа

Вещественные числа

На странице целые числа в паскале мы разбирались, соответственно, с целочисленным типом данных в PascalABC.Net. На этой странице мы разберем наиболее значимый для практических вычислений тип чисел – вещественный тип. Так уж случилось, или так устроена природа, что вещественные числа встречаются намного чаще целых: длина пройденного пути или расстояние до звезд, вес человека или товара в магазине, масса и скорости элементарных частиц и космических тел, гипотенуза прямоугольного треугольника с целыми катетами очень редко бывает целой и т.д. Даже стрелка на спидометре автомобиля то и дело постоянно показывает не «точную», целую скорость, а замирает между стрелок. Одним словом, все мы с вами живем в мире вещественных, или как ещё говорят, действительных чисел.

Вещественные числа в PascalABC.Net бывают трех типов: real, double и single, причем первые два (real и double) являются синонимами. Поэтому использовать можно только real и single. Приведем соответствующую таблицу для действительных чисел, аналогичную той, которую мы приводили на предыдущей странице:

А теперь обратите внимание на колонку «Диапазон значений»: на левые части диапазона (со знаком «минус») и на правые части. Возьмем, к примеру, тип вещественных чисел real. Его значения изменяются от -1.8∙10308 до 1.8∙10308. Правая граница 1.8∙10308 означает, что данное число имеет 309 знаков: цифру 1, далее цифру 8, а далее ещё 307 нулей. Аналогичный размер имеет левая граница диапазона значений, но только со знаком минус.

Ко всему вышесказанному надо сделать одно важное замечание: значения границ, которые мы указали в таблице, не совсем точно соответствуют границам диапазона изменения вещественных чисел в PascalABC.Net. Но что это значит? Почему вместо 1.8∙10308 не взять бы, например, 2∙10308, или вообще круглое число 10308?

Дело в том, что компьютер хранит в своей памяти числа не в таком виде, в каком мы привыкли с ними обращаться – десятичном, используя для записи чисел цифры 0, 1, …, 9. Компьютер использует двоичную систему счисления, а это значит, что кроме нулей и единиц он не «понимает» ничего. Числа в таком виде представляются набором только нулей и единиц, и когда компьютер встречает десятичное, привычное для нас число, то он сразу же переводит его в двоичную систему счисления.

Последнее означает, что указанные нами НЕТОЧНЫЕ границы -1.8∙10308 и 1.8∙10308 тоже представляются в виде каких-то двоичных чисел. Но каких? И раз мы говорим, что эти границы не точные, то какие тогда точные значения границ имеют вещественные числа в PascalABC.Net? Как раз это мы разберем в следующей статье.