comment formater un certain nombre de S9(5)V99 ascii .net
J'ai été la recherche de s9(5)v99, mais a obtenu des informations différentes et pas vraiment clair. Quelqu'un pourrait-il montre comment ou la formule pour convertir. grâce
Vous devez vous connecter pour publier un commentaire.
Ce que vous nous avez montré ici est
le
PICTURE
clause partie de COBOL déclaration de données.De données COBOL déclarations sont un peu bizarres et prendre un certain obtention utilisé to. Voici un lien vers un cours d'introduction à
tutoriel sur la COBOL les déclarations de données.
Cela devrait vous obtenir a commencé.
La clause de l'Image que vous avez donné dans votre question, c'est la définition d'un élément numérique avec les éléments suivants
caractéristiques:
S
- Signe de début9(5)
- 5 décimalesV
- Point décimal implicite99
- 2 chiffres après le point décimal impliciteFondamentalement, vous indiquez le compilateur COBOL pour définir une variable numérique capable de tenir
les valeurs -99999.99 à +99999.99. Exactement comment le compilateur s'acquitter de cette
la demande dépend de la spécificité de
USAGE
clause. Toutefois, pour les éléments contenant unfixe la position du point décimal, la "normale" d'UTILISATION est
PACKED-DECIMAL
ouCOMP-3
(ce sont juste desdes noms différents, ce qui signifie la même chose). Cette lien
fournit quelques informations préliminaires concernant la représentation de stockage des paniers de données décimal.
Paniers de données décimales sont utiles pour faire des calculs numériques où le nombre de décimales doit
restent fixes.
Écrit paniers de données décimal d'un rapport ou d'un terminal ne fonctionne pas particulièrement bien. Vous devez
d'abord le convertir en un
DISPLAY
capable format. Cela impliqueMOVE
ing les paniers valeur décimale à l'autrevariable avec un
USAGE DISPLAY
attribut. Supposons que votre pique-variable décimale a été appeléPACKED-DECIMAL-NBR
et a été le maintien de la valeur -2345.01. Vous pouvez définir une variable d'affichagepour le tenir comme:
puis, quand vient le moment d'écrire/affichage de la valeur contenue dans
PACKED-DECIMAL-NBR
vousfaire quelque chose comme:
La
MOVE
convertit les paniers-nombre décimal à une représentation de caractère que vous pouvezaffichage dans les rapports ou sur le terminal. La valeur
-2,345.01
est affiché.S en cobol est la définition de la signature numérique de terrain (c'est à dire peut être positif ou négatif).
Ainsi, par exemple S999 est signé à 3 chiffres numériques (binaires). Problème S est supposé, et dans la plupart des compilateurs cobol, la manière dont le signe est marqué par "overpunching" le dernier personnage avec un autre personnage pour signifier plus ou moins. Il en résulte, si vous regardez le champ dans la table ascii navigateur, vous aurez un étrange personnage. C'est à dire. MOINS de 500 ressemblerait à quelque chose comme 50 ou 50} en fonction du sous-jacent de caractère et si c'était un + ou un - qui avait overpunched.
PIC S9(5)v99
n'est pas un format de nombre. C'est une description de la façon dont les données sont stockées et ce qu'il signifie. Par exemple, un numéro enregistré comme "-0010000" signifie -100.00.Exactement ce que vous voulez accomplir? Êtes-vous essayer d'envoyer un
decimal
-100.00 à un programme COBOL?PIC -99,999.00
est un format de nombre. Il spécifie l'utilisation d'un signe moins devant un si le nombre est négatif, à l'utilisation de cinq chiffres avant la virgule, avec une virgule entre les milliers, un point décimal, puis exactement deux chiffres après. Un numéro stocké dans unPIC S9(5)V99
champ peut raisonnablement être déplacé vers unPIC -99,999.00
champ.