C3) Numerická editovaná položka Ze tří existujících možností popisu numerické editované položky se v tomto odstavci pojednává pouze o prvních dvou; třetí možnost spočívající v uvedení klauzule SIGN formátu 1 nebo 3 je popsána v 4.5.10. Každému ze znaků 9, Z, *, +, -, B, 0, /, čárka, tečka, měnový symbol je přidělen právě jeden byte paměti, dvojznaku Yx je přidělen též pouze jeden byte paměti, dvojznakům CR a DB jsou přiděleny vždy dva byty paměti, znakům V a P není přidělen žádný byte paměti. Byty paměti se přidělují jednotlivým znakům vzoru v témže pořadí, v jakém tyto znaky po sobě následují ve vzoru. Znak vzoru určuje, jaký obsah může jemu odpovídající byte paměti při naplňování numerické editované položky (tj. při tzv. edici) získat. Význam jednotlivých znaků vzoru: Znaky 9, V a P mají stejný význam jako u numerických položek s pevnou řádovou tečkou (viz 4.5.3.C1). Z = náhrada vedoucích nul mezerami Znaku Z odpovídá určitý dekadický řád, a to stejný, jako kdyby místo všech znaků Z ve vzoru byly znaky 9. Znak Z se od znaku 9 liší pouze tím, že při edici se nevýznamné vedoucí nuly stojící na dekadických řádech, jimž ve vzoru odpovídají znaky Z, nahradí mezerami. Nahrazování mezerami začíná od prvního dekadického řádu ve vzoru (tzn. od prvního znaku Z), přičemž nahrazovány jsou i výplňkové znaky (B, 0, čárka, / a Yx). Nahrazování končí buďto výskytem znaku 9 nebo tečky ve vzoru, anebo i na pozici označené ve vzoru znakem Z, pokud této pozici odpovídá nenulová cifra v hodnotě. Výplňkové znaky stojící ve vzoru před prvním dekadickým řádem (tzn. před prvním znakem Z) nejsou nahrazovány a dosadí se při edici do úseku paměti přiděleného položce. Poznámka: Nahrazování mezerami není ukončeno výskytem znaku V ve vzoru! * = náhrada vedoucích nul hvězdičkami Znak * má přesně stejný význam jako znak Z s tím rozdílem, že se místo náhrady mezerami provádí náhrada hvězdičkami. Znak * se používá především v peněžnictví, aby se znemožnilo neoprávněné dodatečné vpisování cifer do vytisknutých sestav (tzv. šekové jištění). Příklad: PICTURE vysílající hodnota obsah položky -------------------------------------------------- ZZZ99 12345 12345 ZZZ99 538 bb538 ZZZ99 6 bbb06 ZZZ99 0 bbb00 ZZZ.ZZ 0.03 bbb.03 ZZZVZZ 0.03 bbbb3 Z,ZZZ,ZZZ 1000 bbbb1,000 Z,ZZZ,ZZZ 900 bbbbbb900 Z,ZZZ,999 900 bbbbbb900 ///Z/Z/Z 8 ///bbbb8 ***9.99 12.34 **12.34 ***9.99 0.7 ***0.70 **,***.** 0.07 ******.07 BBB*B*B* 8 bbb****8 $ = měnový symbol Měnový symbol $ smí být ve vzoru uveden trojím způsobem: a) Jako tzv. "$ levý", to jest na jediném místě vlevo ode všech znaků vyjadřujících skutečné dekadické řády. Při edici se na odpovídající byte položky uloží měnový symbol. b) Jako tzv. "$ pravý", to jest na jediném místě vpravo ode všech znaků vyjadřujících skutečné dekadické řády. Při edici se na odpovídající byte položky uloží měnový symbol. c) Jako tzv. "řetězec $", kdy vzor obsahuje alespoň dva znaky $. Takový vzor má stejný význam, jako kdyby místo prvního znaku $ ve vzoru bylo uvedeno B (výplňkový znak způsobující vložení mezery) a místo druhého až posledního znaku $ ve vzoru byly uvedeny znaky Z; provádí se tedy náhrada nevýznamných vedoucích nul mezerami počínaje druhým znakem $ ve vzoru dle pravidel popsaných u znaku Z. Navíc se však na byte stojící bezprostředně vlevo od prvního nenahrazeného znaku (ve vzoru mu může odpovídat první $, některý další $ nebo i výplňkový znak) uloží měnový symbol $. Příklad: PICTURE vysílající hodnota obsah položky ---------------------------------------------- $$$99 1234 $1234 $$$99 538 b$538 $$$99 6 bb$06 $$$99 0 bb$00 $$$.$$ 0.03 bb$.03 $$$V$$ 0.03 bbb$3 $$,$$9 1000 $1,000 $$,$$9 900 bb$900 $$,999 900 b$,900 $/$$9 678 b$678 $/$$9 78 b/$78 $/$$9 8 b/b$8 //$/$/$/$ 8 //b/bbb$8 $999 8 $008 $ZZZ 8 $bb8 ZZ9$ 24 b24$ Poznámka: Je-li v paragrafu SPECIAL-NAMES uvedena klauzule CURRENCY SIGN IS 'znak' (viz 3.1.2.), je pak nutno ve všech vzorech místo znaku $ uvádět nový měnový symbol definovaný touto klauzulí. Tento nový měnový symbol bude rovněž dosazován na příslušný byte položky při edici. + = vyjádření znaménka Znaménko + smí být ve vzoru uvedeno trojím způsobem: a) Jako tzv. "+ levé", to jest na jediném místě vlevo ode všech znaků vyjadřujících skutečné dekadické řády. Při edici se na odpovídající byte položky uloží znaménko editované hodnoty, a to znaménko + při nezáporné hodnotě a znaménko - při záporné hodnotě (a také při editování tzv. "záporné nuly", tj. rozpakované nebo pakované položky s nulovou hodnotou a se znaménkovým půlbytem 4). b) Jako tzv. "+ pravé", to jest na jediném místě vpravo ode všech znaků vyjadřujících skutečné dekadické řády. Při edici se na odpovídající byte položky uloží znaménko editované hodnoty (určené dle stejných pravidel jako při "+ levém"). c) Jako tzv. "řetězec +", kdy vzor obsahuje alespoň dva znaky +. Takový vzor má stejný význam, jako kdyby místo prvního znaku + ve vzoru bylo uvedeno B (výplňkový znak způsobující vložení mezery) a místo druhého až posledního znaku + ve vzoru byly uvedeny znaky Z; provádí se tedy náhrada nevýznamných vedoucích nul mezerami počínaje druhým znakem + ve vzoru dle pravidel popsaných u znaku Z. Navíc se však na byte stojící bezprostředně vlevo od prvního nenahrazeného znaku (ve vzoru mu může odpovídat první $, některý další $ nebo i výplňkový znak) uloží znaménko editované hodnoty (určené dle stejných pravidel jako při "+ levém"). - = vyjádření znaménka Znaménko - má stejný význam jako znaménko + s tím rozdílem, že se při nezáporné hodnotě ukládá na odpovídající byte položky nikoliv znaménko +, nýbrž mezera. Při záporné hodnotě se ukládá znaménko - (stejně jako při + ve vzoru). Příklad: PICTURE vysílající hodnota obsah položky ------------------------------------------------ +9999 -20 -0020 +ZZZ9 +20 +bb20 -9999 +20 b0020 -$$$9 +20 bb$20 $-999 +20 $b020 +$ZZZ -5 -$bb5 ***9- +24 **24b $$99+ +5 b$05+ $V999- +0.04 $040b ++++.+ -5 bb-5.0 +++9.9 +0.8 bb+0.8 +++9.9 0 bb+0.0 ---.-- -0.09 bb-.09 ---V-- -0.09 bbb-9 -(6) +358 bbb358 +(3)9(2) -2 bb-02 ++,+++ +60 bbb+60 --,--- -207 bb-207 ++,+++ -7654 -7,654 +/++9 -678 b-678 -0--9 +8 b0bb8 CR = kreditní symbol, DB = debetní symbol Dvojice znaků CR resp. DB tvoří nedílný celek; ve vzoru musí následovat až za posledním znakem vyjadřujícím skutečný dekadický řád. Dvojici znaků CR resp. DB odpovídají dva byty v položce, které jsou určeny pro vyjádření znaménka editované hodnoty. Při nezáporné hodnotě se na tyto dva byty uloží dvě mezery (týká se CR i DB), zatímco při záporné hodnotě se na tyto dva byty uloží dvojice písmen CR resp. DB (vždy velkými písmeny). (Jedná se vlastně o jakousi výraznější obdobu "pravého -".) Příklad: PICTURE vysílající hodnota obsah položky ------------------------------------------------ $999CR -63 $063CR ZZZ.99CR 500 500.00bb $*,***DB -852 $**852DB $$$.$$DB 0.03 bb$.03bb B(5)*(6)DB 128 bbbbb***128bb . = tisková desetinná tečka Znak tečka jednak určuje polohu výpočtové desetinné tečky (stejně jako znak V) a navíc určuje jeden byte v položce, na který bude při edici uložena tečka. Vpravo od znaku tečka musí být ve vzoru všechny skutečné dekadické řády vyjádřeny stejným znakem (9,Z,*,$,+,-); není přípustné zde kombinovat znak 9 s jinými těmito znaky. (Tzn. vzor ZZZ.Z9 je chybný, zatímco vzory 999.99, ZZZ.99, ZZZ.ZZ a ZZZVZ9 jsou přípustné.) Při dosažení znaku tečka ve vzoru se vždy ukončuje nahrazování vedoucích nul mezerami resp. hvězdičkami (jako kdyby byly vpravo od tečky všechny skutečné dekadické řády vyjádřeny znakem 9). B 0 , / Yx = vložení mezery, nuly, čárky, lomítka, znaku "x" Tyto znaky nazýváme souhrnně výplňkové znaky. Každému výplňkovému znaku odpovídá jeden byte v položce; na něj pak bude při edici vložena mezera (při B), znaková nula (při 0), čárka (při ,), lomítko (při /) resp. znak "x" (při dvojznaku Yx). Výplňkové znaky umístěné mezi znaky vyjadřujícími skutečné dekadické řády jsou při nahrazování vedoucích nul mezerami nebo hvězdičkami nahrazeny též (jak je popsáno u znaku Z). Výplňkové znaky umístěné před prvním anebo za posledním znakem vyjadřujícím skutečný dekadický řád nahrazovány nejsou a objeví se ve výsledném obsahu položky. (S výjimkou případu, kdy výplňkový znak stojí bezprostředně před druhým znakem $ nebo + nebo - v řetězci, přičemž tomuto znaku připadne nenulová cifra: pak se výplňkový znak nahradí znakem $ nebo + nebo - nebo mezerou; např. při PIC $/$$$ a hodnotě 456 dostaneme b$456. Dále s výjimkou případu, kdy celá položka má být vyplněna mezerami nebo hvězdičkami; viz též klauzuli BLANK.) "Dvojznakem Yx" rozumíme toto: Ve vzoru smí být uveden znak Y (nebo y) jako neposlední znak vzoru, přičemž znak "x" za ním následující nesmí být číslice 9, velké písmeno Z, mezera ani binární nula. Za znakem "x" smí být uveden opakovač, tedy např. YT, Y#, Ya(10), YY atd. Znak Y se nepočítá do délky položky a není mu přidělen byte paměti, je to pouze příznak, že za ním následující znak "x" má být chápán jako výplňkový znak (obdobně jako B, 0,čárka a /), přičemž při edici bude na byty odpovídající tomuto znaku "x" dosazen právě tento znak "x". (Tedy YT nebo i YY odpovídá jednomu bytu položky, Y!(5) odpovídá pěti bytům položky; položka s PIC ZY=ZY?(3)9 má 1+1+1+3+1 = 7 bytů.) Poznámka: Je-li v paragrafu SPECIAL-NAMES uvedena klauzule DECIMAL-POINT IS COMMA (viz 3.1.1.), vymění se ve všech vzorech význam tečky a čárky. Tečka se tedy stává výplňkovým znakem (a může být uvedena v libovolném počtu), zatímco čárka se stává "výpočtovou desetinnou čárkou" (a tedy smí být uvedena nejvýše jednou). Některé kombinace znaků vzoru jsou vždy nepřípustné; přehled o tom podává následující tabulka. Písmeno N v tabulce označuje, že za znakem vzoru uvedeným v řádku tabulky nesmí být až do konce vzoru uveden znak uvedený v nadpisu příslušného sloupce tabulky. ----------------------------------------------------------- | | B| | druhý| 0| | | levé první další pravé ,| | | CR /| |první |ń $ P ń $ ń $ Z * 9 V . ń $ P DB Yx| |-------|-------------------------------------------------| |ń levé |N A A N A N A A A A A A N A A N A| |$ levý |A N A A N A N A A A A A A N A A A| |P levé |A A A A A A A A A A N N A A N A A| |ń první|N N A N N A N N N A A A N A A A A| |$ první|N N A N N N A N N A A A A N A A A| |ń další|N N N N N A N N N A A A N A A A A| |$ další|N N N N N N A N N A A A A N A A A| | Z |N N N N N N N A N A A A A A A A A| | * |N N N N N N N N A A A A A A A A A| | 9 |N N N N N N N N N A A A A A A A A| | V |A A A A A A A A A A N N A A N A A| | . |A A A N N A A A A A N N A A N A A| |ń pravé|N N N N N N N N N N A A N A A N A| |$ pravý|N N N N N N N N N N A A A N A A A| |P pravé|N N N N N N N N N N A A A A A A A| | CR DB |N N N N N N N N N N A A N A A N A| |B 0 , /|A A A A A A A A A A A A A A A A A| ----------------------------------------------------------- Písmeno A v tabulce označuje, že příslušné dva znaky smí po sobě (ať už bezprostředně anebo s jedním nebo více znaky mezi sebou) ve vzoru následovat. Samozřejmě vzor může být chybný, i kdyby všem dvojicím jeho znaků odpovídalo v tabulce písmeno A, pokud by odporoval některému jinému pravidlu této příručky; takovýmito chybnými vzory jsou např. +$BBB, Z(40), Z.Z9, B(200)99 apod. Znaky +, -, $ a P jsou v tabulce použity několikrát v závislosti na jejich počtu a poloze ve vzoru: a) Znaky "+ levé", "- levé", "$ levý", "+ pravé", "- pravé" a "$ pravý" jsou definovány v předešlém textu. b) "P levé" resp. "P pravé" znamená znak P stojící ve vzoru vlevo resp. vpravo ode všech znaků vyjadřujících skutečné dekadické řády. (Každý znak P ve vzoru musí být buďto "P levé" nebo "P pravé"; není přípustný znak P stojící mezi znaky vyjadřujícími skutečné dekadické řády. Dále není přípustné, aby ve vzoru byly současně jak znaky "P levé", tak i znaky "P pravé".) c) U řetězců znaků +,-,$ rozlišujeme vždy první znak v řetězci ("+ první", "- první", "$ první" - jak bylo řečeno výše, nahrazuje se písmenem B) a druhý až poslední znak v řetězci ("+ další", "- další", "$ další" - jak bylo řečeno výše, nahrazuje se písmenem Z). Skutečné dekadické řády určené vzorem (tj. dekadické řády obsažené v hodnotě položky, viz 4.5.3.C1) odpovídají právě všem znakům 9,Z,* a dále druhému až poslednímu znaku +,-,$ v řetězci (v tabulce jsou označeny jako "další"). Poznámka: Tabulka vyjadřuje mimo jiné tato pravidla: 1) Možnosti "jeden nebo více znaků Z", "jeden nebo více znaků *", "řetězec +", "řetězec -" a "řetězec $" se navzájem v témže vzoru vylučují. Obsahuje-li vzor některou z těchto možností, smí (leč nemusí) za těmito znaky následovat ještě znaky 9; znaky 9 však nikdy nesmí stát uprostřed řetězce znaků Z,*,+,-,$ anebo před ním. Je samozřejmě přípustné, aby vzor neobsahoval žádnou ze zmíněných pěti možností a aby tedy všechny skutečné dekadické řády ve vzoru byly vyjádřeny pouze pomocí znaků 9 (např. $99,999.99CRB(8)). Příklad: Toto pravidlo vymezuje 11 základních typů vzorů (z hlediska způsobu vyjádření skutečných dekadických řádů): 99999 ZZZZZ ***** ++++++ ------ $$$$$$ ZZZ99 ***99 ++++99 ----99 $$$$99 2) Vzor smí obsahovat nejvýše jedno vyjádření znaménka (+ levé, - levé, + pravé, - pravé, řetězec +, řetězec -, CR, DB); jakožto výjimka se připouští, aby za řetězcem + nebo za řetězcem - následovalo ještě CR nebo DB. Neobsahuje-li vzor žádné vyjádření znaménka, bude při edici případné znaménko vysílajícího údaje ignorováno a bude se tedy editovat absolutní hodnota vysílajícího údaje (odpovídá to numerické položce s pevnou řádovou tečkou bez S ve vzoru). 3) Ve vzoru smí být nejvýše jeden znak pro určení polohy výpočtové desetinné tečky, tj. znak V nebo tečka. 4) Výplňkové znaky B, 0, čárka, / a Yx smí být ve vzoru umístěny kdekoliv; neplatí pro ně žádná omezení. 5) Posloupnost znaků vyjadřujících skutečné dekadické řády smí být přerušena pouze znakem V nebo tečkou a dále výplňkovými znaky B, 0, čárka, / a Yx. Mezi prvním a druhým znakem +,-,$ v řetězci smí být mimo těchto znaků ještě navíc znaky P (levé). 6) Před prvním znakem vyjadřujícím skutečný dekadický řád smí ve vzoru stát znaky + levé, - levé, $ levý, P levé, + první, - první, $ první, V, tečka a výplňkové znaky B, 0, čárka, / a Yx. Tyto znaky mohou být uvedeny v libovolném vzájemném pořadí s těmito výjimkami: a) Znaky P levé nesmí stát před znakem V nebo před tečkou, nýbrž musí stát až za nimi. b) První znak +,-,$ v řetězci nesmí stát až za tečkou, nýbrž musí stát před tečkou (smí však stát za znakem V). c) Znak $ levý nesmí stát za prvním znakem + nebo - v řetězci, nýbrž musí stát před ním. d) Znak + levé resp. - levé nesmí stát za prvním znakem $ v řetězci, nýbrž musí stát před ním. 7) Za posledním znakem vyjadřujícím skutečný dekadický řád smí ve vzoru stát znaky V, tečka, + pravé, - pravé, $ pravý, P pravé, CR, DB a výplňkové znaky B, 0, čárka, / a Yx. Tyto znaky mohou být uvedeny v libovolném vzájemném pořadí s tou jedinou výjimkou, že znaky P pravé nesmí stát za znakem V nebo za tečkou, nýbrž musí stát již před nimi. 8) Posloupnost znaků P smí být přerušena znaky +,-,$ (levými, pravými nebo prvními v řetězci), CR, DB a dále výplňkovými znaky B, 0, čárka, / a Yx; praktický význam to ovšem nemá. Příklady: Následující vzory jsou přípustné: +$.PPP999 +$.PPPZ(6) 99/99/99 V$$$ -$VPZZ9(6) -$VPPP***,*** -$.$(15) .$999 B+B$B.BPPB9B(8) B(5)ZZ999PP.CR +.++++ .-ZZZ $ZZ9(5)P(5)V+ $+PPP++++ +++CR V+$$$ B(60)999PPPCR +$.PP$$$,$$$ ----DB P-*** B$BZ,ZZ9P.DBBBB $VP(5)$B$B9- 9B9BPBP VP$-99 -$BZBZB9B,VB9B9 $(5)99PPV+ 9999$ ZZZPV$+ $**,***.**CRBBB $+BV,PP+++990 VPP--- ***$-PV $B*0*0*PP,V+BBB $-(8)99PP.BB PP++++ +++$DBP. Následující vzory jsou nepřípustné: ***ZZZ 999ZZ ZZZ.Z9 PPP.99 -++++ 999+CR $$$ZZZ +9+9+9 +.+99 PPVZZZ ----+ ZZZDB- +++*** 9+99 $$.$$9 999VPP -999+ +$+++ ---$$$ ZZZ$Z .--- +++.P -999- $-$$$ $$$+++ ---$- .$$$ P999PP +ZZZCR 99V.99 999--- 99$99 .PP+++ $999$ +-999 ZZ.ZVZ Další pravidla: 1) Vzor musí obsahovat alespoň jeden znak vyjadřující skutečný dekadický řád (tj. alespoň jeden znak 9 nebo Z nebo * anebo alespoň dva znaky + nebo - nebo $). 2) Součet počtu znaků vyjadřujících skutečné dekadické řády a počtu znaků P ve vzoru smí být nejvýše 30 (srv. odpovídající pravidlo 5 formulované pro numerické položky s pevnou řádovou tečkou, viz 4.5.3.C1). 3) Délka numerické editované položky (tj. počet bytů paměti přidělených položce) je rovna počtu všech znaků ve vzoru s výjimkou znaků V a P, samozřejmě s přihlédnutím k opakovačům; dvojice znaků CR a DB obsazují dva byty. Délka numerické editované položky smí být nejvýše 127 bytů. 4) Neobsahuje-li vzor žádný znak 9, jsou tyto dvě možnosti: a) Všechny skutečné dekadické řády jsou vyjádřeny týmž znakem Z nebo + nebo - nebo $. Je-li do takové položky posílána nulová hodnota, budou všechny byty položky vymezerovány (včetně znamének, tečky, pevného $, výplňkových znaků atd.) stejně jakoby byla v popisu položky uvedena klauzule BLANK. b) Všechny skutečné dekadické řády jsou vyjádřeny znakem *. Je-li do takové položky posílána nulová hodnota, budou všechny byty položky vyplněny hvězdičkami s výjimkou znaku tečka, který se nikdy hvězdičkou nenahrazuje a objeví se tedy na svém místě v položce. Toto pravidlo má přednost přede všemi ostatními pravidly pro naplňování numerických editovaných položek. Příklad: PICTURE vysíl.hodnota obsah položky -------------------------------------------- $Z,ZZZ.Z+ 0.1 $bbbbb.1+ $Z,ZZZ.Z+ 0 bbbbbbbbb $+.+++,+++/ 0.000001 $+.000,001/ $+.+++,+++/ 0 bbbbbbbbbbb -$$,$$$ 0 bbbbbbb $*,*B*.*B+B 456 $4,5b6.0b+b $*,*B*.*B+B 0.7 $*****.7b+b $*,*B*.*B+B 0 ******.**** Poznámka: Položka s PICTURE ZZZ.ZZ se zpracovává přesně stejně jako kdyby měla PICTURE ZZZ.99 BLANK WHEN ZERO. Použití: Numerická editovaná položka se používá především jako příjmová položka v numerickém přesunu nebo v aritmetickém příkazu. Je tedy do ní posílána určitá numerická hodnota, která bude upravena pro tisk (editována) dle tvaru vzoru z klauzule PICTURE (a případně též klauzule BLANK). Přesun je realizován těmito dvěma kroky: 1) Vysílající numerická hodnota se nejprve přesune do pomocné rozpakované numerické položky, která je jednoznačně určena vzorem numerické editované položky takto: a) Znaménko má povoleno (jakoby měla ve vzoru znak S) právě když je ve vzoru numerické editované položky alespoň jedno vyjádření znaménka (+,-,CR,DB). Jinak se do této pomocné položky přesune absolutní hodnota z vysílající numerické hodnoty. b) Její dekadické řády (9) odpovídají právě všem znakům vzoru numerické editované položky vyjadřujícím skutečné dekadické řády (tj. všem znakům 9,Z,* a dále druhému až poslednímu znaku +,-,$ v řetězci). c) Znaky P uvedené ve vzoru numerické editované položky se přenášejí i do vzoru této pomocné položky. d) Poloha výpočtové desetinné tečky (V) je určena polohou znaku V nebo znaku tečka ve vzoru numerické editované položky; neobsahuje-li tento vzor ani znak V ani tečku, určí se poloha výpočtové desetinné tečky dle pravidel uvedených pro numerické položky s pevnou řádovou tečkou. Při tomto přesunu může samozřejmě dojít k odřezání platných cifer vysílající numerické hodnoty vpředu nebo vzadu. 2) Obsah této pomocné numerické rozpakované položky se nyní přesune do numerické editované položky tak, aby jednotlivé dekadické řády přišly na odpovídající místa, přičemž se zároveň provedou všechny předepsané ediční úpravy. Tento přesun se realizuje pomocí dlouhého a pomalého podprogramu. Příklad: Má-li numerická editovaná položka PIC +++9, bude mít pomocná rozpakovaná položka PIC S999 (pozor, první znak +,-,$ v řetězci neoznačuje skutečný dekadický řád, nýbrž pouze zajišťuje, aby bylo v položce místo pro umístění znaku +,-,$; skutečné dekadické řády odpovídají až druhému až poslednímu znaku řetězce). Bude-li mít vysílající údaj hodnotu -1004, získá pomocná položka hodnotu -4 (tisíce se při tomto přesunu odříznou), takže numerická editovaná položka získá obsah bb-4. Příklad: Má-li numerická editovaná položka PIC $$$.$, bude mít pomocná rozpakovaná položka PIC 99V9. Bude-li mít vysílající údaj hodnotu -200.19, získá pomocná položka hodnotu 0.1 (znaménko se při tomto přesunu ignoruje, stovky a vyšší řády jakož i setiny a nižší řády se odříznou bez zaokrouhlování), takže numerická editovaná položka získá obsah bb$.1. Kdyby měl vysílající údaj hodnotu -1200.098, získala by pomocná položka hodnotu 0 a numerická editovaná položka by byla tedy celá vymezerována. Poznámka: Numerická editovaná položka patří v tomto COBOLu mezi numerické položky (nikdy se však nepovažuje za celočíselnou položku, ani při PIC ZZ9 apod.), takže může být použita všude tam, kde formát povoluje neceločíselnou numerickou položku. Numerická editovaná položka tedy může být použita též jako vysílající položka v numerickém přesunu, jako operand v aritmetickém výrazu nebo v některém z aritmetických příkazů, v relačním testu při numerickém srovnávání, v příkazu PERFORM za VARYING/AFTER nebo za FROM resp. BY atd. Ve všech těchto případech se nejprve pomocí podprogramu prohledá úsek paměti přidělený numerické editované položce, čímž se získá ta numerická hodnota, která byla do numerické editované položky původně uložena, a s takto získanou numerickou hodnotou se pak provádí předepsaný numerický výpočet. Vedlo by proto ke značným časovým ztrátám, kdyby numerická editovaná položka vstupovala do numerických operací nebo přesunů vícekrát než je nezbytně nutné anebo kdyby dokonce sloužila jako mezivýsledek. Jediným rozumným důvodem k tomu, aby numerická editovaná položka vstupovala do numerických operací jako operand, je použití numerické editované položky jako části vstupní logické věty, aby se tak umožnilo děrování resp. psaní vstupních numerických údajů včetně samostatného znaménka (vpředu, vzadu anebo bezprostředně před první nenulovou cifrou), včetně desetinné tečky, výplňkových znaků atd. Každá numerická editovaná položka, která je součástí vstupní logické věty, by měla vstupovat do některé numerické operace nebo numerického přesunu pouze jedenkrát pro jeden příkaz vstupu. Potřebujeme-li využívat její hodnotu vícekrát, je vhodné ji po přečtení ze vstupního souboru explicitně přesunout do pracovní položky (nejlépe binární nebo exponenciální dlouhé) a v příslušných numerických operacích a přesunech pak používat tuto pracovní položku. Zmíněný podprogram pro získání numerické hodnoty numerické editované položky nevyžaduje, aby obsah položky přesně odpovídal vzoru. V numerické editované položce prohlédne všechny byty, jimž ve vzoru odpovídají skutečné dekadické řády, a nalezne-li na některém z nich znakovou cifru 0 až 9, použije ji; na ostatních skutečných dekadických řádech předpokládá nuly (zásadně tedy nepoužije cifru stojící na místě, jemuž ve vzoru neodpovídá skutečný dekadický řád, ani hexadecimální 40 až 49 apod.). Nalezne-li v položce písmeno C nebo D na místě, jemuž ve vzoru odpovídá první znak dvojznaku CR resp. DB, anebo nalezne-li kdekoliv v položce znak - (s výjimkou případu, že mu ve vzoru odpovídá dvojznak Y-), považuje hodnotu za zápornou. Všechny ostatní znaky ignoruje. Získá tedy nějakou numerickou hodnotu vždy i v případě, že by test NUMERIC pro položku nebyl pravdivý, ba dokonce i kdyby byl její obsah zcela nesmyslný. (Např. při PIC Z99 dají hodnotu 5 mimo "oficiální" obsah b05 též obsahy 005, bb5, +05, +b5, b+5, **5, AB5 atd., nikoliv však obsahy 5bb, b5b, +5b, b5+ apod., jež dají hodnotu 500 resp. 50. Obsahy -05, -b5, b-5 apod. dají hodnotu -5, i když vzor položky neobsahuje vyjádření znaménka.) Doporučujeme však těchto možností raději nevyužívat.