Начальный курс программирования на языке Форт

         

ОКРУГЛЕНИЕ


Из предыдущего примера вытекает другой вопрос: как производить округление? Решим такую задачу: сколько бананов нужно завезти в школьный буфет, если он рассчитан на 225 человек, и 32% из них обычно покупают бананы? Естественно, нас интересуют только целые бананы, так что в случае получения нецелого результата его нужно округлить. Сейчс слово % определено так, что все цифры справа от десятичной точки просто отбрасываются. Иными словами, результат «усекается»: 32% ОТ РЕЗУЛЬТАТ 225 = 72.00 72 - абсолютно правильный 226 = 72.32 72 - правильный, округлен в меньшую сторону (усечен) 227 = 72.64 72 - усечен, но не округлен

Существует, однако, способ, при котором любое десятичное значение от 0,5 и выше, полученное в остатке, округляется до следующего целого. Для того чтобы найти «округленные проценты», мы должны определить слово R%: : R% ( n % -- результат ) 10 */ 5 + 10 / ;

так что теперь выражение 227 32 R% .

даст в результате 73, т. е. правильно округленное до следующего целого числа.

Заметьте, что сначала мы делим на 10, а не на 100. При этом у нас появляется возможность добавить цифру 5 в позицию единиц числа, полученного в результате выполнения операции */. ОПЕРАЦИЯ СОДЕРЖИМОЕ СТЕКА

227 32 10 */ 726 5 + 731 10 / 73

Окончательное деление на 10 приводит число к надлежащему виду, в чем вы можете убедиться самостоятельно1.

Как недостаток такого способа округления необходимо отметить, что вы теряете одну значащую цифру в конечном результате, а именно вместо 32,767 мы можем получить только 3,276 Но если для вас это важно, вы всегда можете воспользоваться числами двойной длины (они будут рассмотрены позднее), которые также можно округлять.



Содержание раздела