3.5 Minteken en punt zichtbaar maken

De regel niet rekenen met een opgemaakt veld geldt voor alle vormen van een opgemaakt veld. Dus ook voor de twee die nu aan de beurt zijn: het zichtbaar maken van het minteken en de decimale punt. Ook deze twee wensen maken we kenbaar in de tekenreeks van de picture-clausule. Heel eenvoudig:

01 saldo    picture -ZZZZ9.99.
  

Het eerste teken in de picture-string is een minteken.

minteken

Een minteken in de picture-string geeft aan dat op die plaats een minteken komt als het getal negatief is. Bij een positief getal komt er een spatie.

In de picture-string van het veld saldo zien we na het minteken vier keer de letter Z staan. Die letters zorgen voor nulonderdrukking. Dan volgt een negen. Het cijfer op die plaats wordt nooit onderdrukt, ook niet als het een nul is. Na de eerste negen volgt er een punt.

punt

De punt in een picture-string geeft aan dat op die plaats een punt komt. Het is de decimaalaanduiding. In tegenstelling tot de letter V geeft de punt aan dat er echt een punt in het veld komt te staan als het veld een waarde krijgt.

Na de punt staan er nog twee negens in de picture-string van het veld saldo. Op die plaatsen komt altijd een cijfer te staan.

Hierna staan enige voorbeelden van een move-opdracht met daarnaast de inhoud van het veld saldo:

opdracht                    veldinhoud
move 0 to saldo                  0.00
move -987.65 to saldo       -  987.65
move 1234.5 to saldo          1234.50
move -43 to saldo           -   43.00
  

We zien dat de veldinhoud keurig is opgemaakt. Geschikt om meteen af te drukken, maar niet meer om mee te rekenen. Het eventuele minteken en de punt maken echt deel uit van het veld. De veldlengte bedraagt negen tekens: 1 positie voor het minteken, 4 posities voor een cijfer (spatie indien voorloopnul), 1 positie voor het laatste cijfer voor de punt, de punt zelf en 2 cijfers na de punt.

Een veld kan een picture hebben zonder een enkele negen, maar met uitsluitend de letter Z.

01 bedrag  picture ZZZZ.ZZ.
  

Als we nul overbrengen naar dat veld, dan staan op alle posities voorloopnullen. Ze worden allemaal onderdrukt. Het zou een beetje raar zijn als de punt wel zou blijven staan. Dan staat er op een verder lege plaats alleen een punt. Dat doet COBOL niet. In zo'n geval verdwijnt ook de punt. Er staat dan helemaal niets meer.

Om te vermijden dat er zomaar een losse punt verschijnt, moet na de punt in de picture òf uitsluitend het cijfer 9 staan, òf uitsluitend de letter Z. Een combinatie is niet toegestaan, want dat zou neerkomen op gedeeltelijke onderdrukking na de punt.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo