To zależy od zaokrąglenia pośredniego i końcowego zestawu zaokrągleń.
zobaczyć więcej informacji:
D.13a Zaokrąglanie
COBOL zapewnia możliwość określenia zaokrąglenia w arytmetyce instrukcji i wyrażeń w różnych punktach procesu oceny wartości i jak przygotowuje się do przechowywania w otrzymaniu elementy danych.
Istnieje osiem różnych form zaokrąglenia obsługiwane przez tego standardu:
• dala od zera: Zaokrąglanie jest do najbliższej wartości większej wielkości.
• NEAREST-AWAY-FROM-ZERO: Zaokrąglanie jest do najbliższej wartości. Jeśli dwie wartości są jednakowo bliskie, wybierana jest wartość o większej wartości. Ten tryb był historycznie związany z klauzulą ROUNDED w poprzednich wersjach standardowego języka COBOL.
• NAJBLIŻSZY NAWET: Zaokrąglanie jest do najbliższej wartości. Jeżeli dwie wartości są jednakowo blisko, wybierana jest wartość, której cyfra z prawej strony jest parzyste. Ten tryb jest czasami nazywany "zaokrąglaniem bankiera".
• NEAREST-TOWARD-ZERO: Zaokrąglanie jest do najbliższej wartości. Jeśli dwie wartości są jednakowo bliskie, wybierana jest wartość o mniejszej wartości.
• ZABRONIONE: Ponieważ wartości nie można dokładnie przedstawić w żądanym formacie, warunek EC-SIZE-TRUNCATION jest ustawiony, a wyniki operacji są niezdefiniowane.
• TOWARD-GREATER: Zaokrąglanie jest najbliższe najbliższej wartości, której wartość algebraiczna jest większa.
• TOWARD-LESSER: Zaokrąglenie jest zbliżone do najbliższej wartości, której wartość algebraiczna jest mniejsza.
• TRUNCATION: Zaokrąglanie jest do najbliższej wartości, której wielkość jest mniejsza. Ten tryb był historycznie związany z nieobecnością klauzuli ROUNDED, jak również z tworzeniem wyników pośrednich w poprzednim standardzie COBOL.
Programista może określić w jaki sposób poszczególne wartości pośrednie są zaokrąglane, gdy są przechowywane, w celu odbierania elementów danych za pośrednictwem klauzuli ZAOKRĄGLONE; może wybrać domyślny tryb zaokrąglania, który będzie używany, gdy zostanie wyświetlona klauzula ZAOKRĄGLONE bez dalszych kwalifikacji na odbierającym elemencie danych poprzez klauzulę TRYB ZAOKRĄGLEJOWANY z sekcji OPCJE w PODZIAŁU IDENTYFIKACYJNYM; i może określać, w jaki sposób operacje arytmetyczne i konwersje do iz formularzy pośrednich są zaokrąglane poprzez klauzulę POŚREDNIEGO ZAOKRĄŻENIA.
D.13a.1 pośredni zaokrąglenia
Pośredni zaokrąglania, gdy stosuje się elementy danych są pobierane w celu włączenia do operacji arytmetycznej lub wyrażenia arytmetycznego i podczas wykonywania operatorów arytmetycznych z wytworzeniem wynik pośredni.
W poprzednim standardzie dla mnożenia i dzielenia w arytmetyce standardowej domyślnym trybem zaokrąglania wyników niedokładnych było obcięcie do 32 cyfr znaczących. Ta wartość domyślna pozostaje niezmieniona w tym standardzie i jest również domyślna dla arytmetyki standardowa-binarna i dziesiętna standardowa.
Gdy wartość pośrednią można przedstawić dokładnie w odpowiednim formacie pośrednim, używana jest dokładna wartość.
W przypadku, gdy wartość nie może być dokładnie odwzorowana, użytkownik może teraz określić inne tryby zaokrąglania dla operacji arytmetycznych i dla konwersji z pośrednich formularzy używanych w operacjach arytmetycznych za pomocą opcjonalnej klauzuli INTERMEDIATE ROUNDING opcji. akapit OZNACZA IDENTYFIKACYJNEGO.
Konkretnie, dostępne są następujące opcje:
• INTERMEDIATE zaokrąglania jest najbliżej z dala od zera • INTERMEDIATE zaokrąglania jest najbliżej nawet • INTERMEDIATE zaokrąglenia jest ZABRONIONE • INTERMEDIATE zaokrąglenia jest obcięcie
, dla której opisy podpunktu znajdują się w D.13a, Zaokrąglanie.
Jeśli nie zostanie określona klauzula ZA POŚREDNIEGO ZAOKRĄGLENIA, zakłada się POŚREDNIE ZAOKRĄGLONE JEST TORUNEK. Jest to niezmienione w stosunku do poprzednich standardów.
D.13a.2 końcowe zaokrąglenie (zaokrąglonemu w pkt)
końcowe zaokrąglenie stosuje się do formowania końcowego wyniku ekspresji lub rachunku, po zakończeniu oceny rachunku lub ekspresji, bezpośrednio przed wynik zostanie umieszczony w miejscu docelowym. Ta forma zaokrąglania jest tą, która jest związana z klauzulą ROUNDED.
W poprzednich normach COBOL podano tylko dwie metody "końcowego" zaokrąglania: zaokrąglanie w kierunku mniejszej wielkości (obcięcie, sygnalizowane przez brak klauzuli ROUNDED); i zaokrąglenie do najbliższych wartości, a jeśli dwie wartości były jednakowo bliskie, wybierz wartość o większej wartości (sygnalizowana obecnością klauzuli ROUNDED).
zaokrąglonego klauzula została wzmocniona, aby umożliwić wyraźny wybór któregokolwiek z ośmiu trybów zaokrąglania (w tym dwóch poprzednio dostępne):
• Zaokrąglone tryb jest z dala od zera • Zaokrąglone TRYBIE jest najbliżej z szafy -Z zero • zaokrąglonymi TRYBU jest najbliżej nawet • zaokrąglonymi TRYBU jest najbliżej-KU zero • zaokrąglonymi mode jest zakazany • zaokrąglonymi-MODE była skierowana-WIĘKSZEJ • zaokrąglonymi TRYB jest skierowany-MNIEJSZA • zaokrąglonymi mode jest TRUNCATION
Jeśli dla danego wyniku nie ma klauzuli ZAOKRĄGŁA, obowiązują reguły TRYB ZAOKRĄGLEZOWANY.
Opcjonalna klauzula TRYB ZAUFANIA WARTOŚCIOWEGO w akapicie OPCJE DYWIDACJI IDENTYFIKACYJNEJ umożliwia użytkownikowi określenie trybu zaokrąglania do dowolnej operacji, dla której pojawia się klauzula ROUNDED bez podrozdziału MODE IS.
DEFAULT zaokrąglonymi klauzula TRYB może podjąć każdy z tych form:
• Domyślne Zaokrąglone tryb jest z dala od zera • Domyślne Zaokrąglone TRYB jest najbliżej z dala od zera • Domyślne Zaokrąglone TRYBIE jest najbliżej, nawet • DEFAULT zaokrąglonymi TRYBU jest najbliżej-KU zero • DEFAULT zaokrąglonymi mode jest zakazany • DEFAULT zaokrąglonymi TRYBU jest skierowany-WIĘKSZEJ • domyślne zaokrąglonymi TRYBU jest skierowany-MNIEJSZA • DEFAULT zaokrąglonymi mode jest obcinanie
dla którego podrozdziałami TRYBU ZAOKRĄGLEŁOWEGO jest klauzula a ponownie opisane w D.13a, Zaokrąglanie.
Jeśli klauzula ZASTRZEŻONE DEFAULT nie pojawi się w programie, efekt klauzuli ROUNDED bez podrozdziału MODE IS jest taki, jak gdyby został określony TRYB POKRĘTŁO JEST NAJBLIŻSZY OD ZERO. Zapewnia to tę samą funkcjonalność, która jest dostępna we wcześniejszych standardach COBOL.
Jeśli pojawi się klauzula TRYB ZAOSZCZĘDNY, klauzule ZAOKRĄGLANE bez podrozdziału MODE IS są traktowane tak, jakby zostały określone w trybie zaokrąglania określonym w klauzuli TRYB ZAUFANIA WARTOŚCI DOMYŚLNEJ.
Odd odpowiedź ... Mam 597.88 , które uważam za poprawne. Którego kompilatora COBOL używasz? – NealB