Зависит от промежуточного и последнего набора округлений.
см. Это для получения дополнительной информации:
D.13a Округление
COBOL предоставляет возможность задания округления в арифметических выражениях и выражениях в различных точках процесса оценки и при подготовке значений для хранения при получении элементов данных.
Этот стандарт поддерживает восемь различных форм округления:
• AWAY-FROM-ZERO: округление до ближайшего значения большей величины.
• NEAREST-AWAY-FROM-ZERO: округление до ближайшего значения. Если два значения одинаково близки, выбирается значение с большей величиной. Этот режим исторически ассоциировался с предложением ROUNDED в предыдущих версиях стандартного COBOL.
• NEAREST-EVEN: округление до ближайшего значения. Если два значения одинаково близки, выбирается значение, крайняя правая цифра которого является четной. Этот режим иногда называют «округлением банкира».
• NEAREST-TOWARD-ZERO: округление до ближайшего значения. Если два значения одинаково близки, выбирается значение с меньшей величиной.
• ЗАПРЕЩЕНО: Поскольку значение не может быть точно представлено в нужном формате, условие EC-SIZE-TRUNCATION установлено, чтобы существовать, и результаты операции не определены.
• TOWARD-GREATER: округление до ближайшего значения, алгебраическое значение которого больше.
• TOWARD-LESSER: округление до ближайшего значения, алгебраическое значение которого меньше.
• TRUNCATION: округление до ближайшего значения, величина которого меньше. Этот режим исторически был связан с отсутствием предложения ROUNDED, а также для формирования промежуточных результатов в предыдущем стандарте COBOL.
Программист может указать, как отдельные промежуточные значения округляются, когда они сохраняются в принимающих элементах данных с помощью предложения ROUNDED; может выбрать режим округления по умолчанию, который будет использоваться, когда появляется предложение ROUNDED без дополнительной квалификации для элемента принимаемых данных через предложение DEFAULT ROUNDED MODE пункта OPTIONS в разделе IDENTIFICATION DIVISION; и может указывать, как арифметические операции и преобразования в промежуточные формы и из них округляются с помощью предложения INTERMEDIATE ROUNDING.
D.13a.1 Промежуточное округление
Промежуточное округление применяется, когда элементы данных извлекаются для включения в арифметическую операцию или арифметическое выражение и во время выполнения арифметических операторов для получения промежуточного результата.
В предыдущем стандарте для умножения и деления в стандартной арифметике стандартным режимом округления для неточных результатов было усечение до 32 значащих цифр. Это значение по умолчанию не изменяется в этом стандарте, а также является значением по умолчанию для стандартной двоичной и стандартной десятичной арифметики.
Когда промежуточное значение может быть точно представлено в соответствующем промежуточном формате, используется точное значение.
В случае, если значение не может быть точно представлено, пользователь теперь может также указать другие режимы округления для арифметических операций и для преобразований в промежуточные формы и из промежуточных форм, используемых в арифметических операциях, посредством необязательного предложения INTERMEDIATE ROUNDING параграфа OPTIONS ИДЕНТИФИКАЦИОННОГО ОТДЕЛЕНИЯ.
В частности, доступны следующие опции:
• ПРОМЕЖУТОЧНЫЙ КРУГЛЫЙ БЛИЖАЙШИЙ-БЛИЖАЙШИЙ-ОТ-НОЛЬ
• ПРОМЕЖУТОЧНЫЙ КРУГЛЫЙ БЛИЖАЙШИЙ
• ПРОМЕЖУТОЧНЫЙ КОНКУРС ЗАПРЕЩЕН
• ПРОМЕЖУТОЧНЫЙ РАУНДИНГ - ТРУНКАЦИЯ
, для которых описания подпунктов находятся в D.13a, Округление.
Если условие INTERMEDIATE ROUNDING не указано, предполагается, что INTERMEDIATE ROUNDING IS TRUNCATION. Это не отличается от предыдущих стандартов.
D.13a.2 Финальное округление(КРУГЛОЕ предложение)
Окончательное округление применяется к формированию окончательного результата выражения или оператора, по завершении оценки оператора или выражения, непосредственно перед тем, как результат помещается в место назначения. Эта форма округления связана с предложением ROUNDED.
В предыдущих стандартах COBOL были предусмотрены только два метода «окончательного» округления: округление в меньшую сторону (усечение, сигнализируемое отсутствием предложения ROUNDED); и округление до ближайших значений, и если два значения были одинаково близки, выберите значение с большей величиной (сигнализируемое наличием предложения ROUNDED).
Предложение ROUNDED было расширено, чтобы разрешить явный выбор любого из восьми режимов округления (включая два ранее доступных):
• КРУГЛЫЙ РЕЖИМ ОТКЛОНЕН
• ОКРУГЛЕННЫЙ РЕЖИМ
• КРУГЛЫЙ РЕЖИМ БЛИЖАЙШЕГО ДАЖЕ
• КРУГЛЫЙ РЕЖИМ - БЛИЖАЙШИЙ-НУЛЬ
• КРУГЛЫЙ РЕЖИМ ЗАПРЕЩЕН
• КРУГЛЫЙ РЕЖИМ НАВЕРХ-БОЛЬШОЙ
• КРУГЛЫЙ РЕЖИМ ВПЕРЕД
• КРУГЛЫЙ РЕЖИМ - ТРАНСЦИЯ
Если предложение ROUNDED отсутствует для данного результата, применяются правила для ROUNDED MODE IS TRUNCATION.
Необязательное условие DEFAULT ROUNDED MODE в параграфе OPTIONS IDENTIFICATION DIVISION позволяет пользователю указать режим округления для любой операции, для которой предложение ROUNDED появляется без подпункта MODE IS.
Предложение DEFAULT ROUNDED MODE может принимать любую из следующих форм:
• Режим округления по умолчанию находится вдали от нуля
• Режим округления по умолчанию - ближайший, вдали от нуля
• Режим округления по умолчанию - самый близкий
• Режим округления по умолчанию - ближайший к нулю
• Режим округления по умолчанию запрещен
• Режим округления по умолчанию - к лучшему
• Режим округления по умолчанию - ниже
• Режим округления по умолчанию - TRUNCATION
, для которого подразделы DEFAULT ROUNDED MODE являются разделом, описаны в D.13a, Округление.
Если предложение DEFAULT ROUNDED MODE не отображается в программе, действие предложения ROUNDED без подпункта MODE IS будет таким, как если бы был определен режим ROUNDED MODE, ближайший вдали от нуля. Это обеспечивает те же функциональные возможности, что и в предыдущих стандартах COBOL.
Если появляется предложение DEFAULT ROUNDED MODE, предложения ROUNDED без подпункта MODE IS обрабатываются так, как если бы они были указаны в режиме округления, указанном в предложении DEFAULT ROUNDED MODE.