[COBOL] conversion decimal en entier

Fermé
konteriano
Messages postés
22
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
17 juillet 2007
- 17 juil. 2007 à 14:05
 pjnoel - 2 août 2007 à 08:59
Bonjour à tous,

Mon problème est tout bête mais là je séche

Voila j'ai un PIC 9(13)v99 que je voudrais convertire en entier

Je fait donc multiply myVar by 100 giving result

ma variable result est defini comme un PIC 9(15)

lorsque je fait tourner mon programme, si j'ai 1992.35 dans myVAr, en sorti j'ai 1992 alors que je devrais avoir 199235

Merci d'avance

1 réponse

blux
Messages postés
24070
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 mai 2022
3 190
17 juil. 2007 à 14:17
Salut,

pourquoi tu n'as pas une redéfinition à un niveau supérieur de ta variable ?


01 toto pic 9(14).
02 titi pic 9(12)v99.

La virgule est virtuelle, donc tu devrais avoir en sortie un 9(14).
0
konteriano
Messages postés
22
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
17 juillet 2007

17 juil. 2007 à 14:25
Merci de ta réponse.

Même si la virgule est virtuelle, si je fait un move de mon pic 9(13)v99 dans un pic 9(15), j'ai plus que le premier chiffre.

Et je me suis trompé dans mon exemple, ce que g en sorti c'est pas 1992 mais 199.

qu'entends tu par redéfinition. Un replacing?
0
blux
Messages postés
24070
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 mai 2022
3 190 > konteriano
Messages postés
22
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
17 juillet 2007

17 juil. 2007 à 14:36
non, pas un replacing, un truc comme ça :

01 toto pic 9(14).
02 titi pic 9(12)v99.

Avec un niveau 01 et un niveau 02.
0
konteriano
Messages postés
22
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
17 juillet 2007
> blux
Messages postés
24070
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 mai 2022

17 juil. 2007 à 14:51
ça me met une erreur a la compilation

BLANK WHEN ZERO, JUSTIFIED, PICTURE, and SYNCHRONIZED clauses invalid for a group item

En gros si sa peut t'aider, j'ai un montant en euro dans un fichier avec 2 chifffre apres la virgule et je le voudrais en centime. Ha oui je vient de me rendre compte que c pas un pic s9(13)v99 a mettre dans un pic 9(15)
0
blux
Messages postés
24070
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 mai 2022
3 190 > blux
Messages postés
24070
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 mai 2022

17 juil. 2007 à 15:01
J'ai plus trop de souvenirs, mais tu pourrais essayer :

01 TOTO.
02 TITI PIC 9(13)V99.
02 TUTU REDEFINES TITI PIC 9(15).
0
konteriano
Messages postés
22
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
17 juillet 2007
> blux
Messages postés
24070
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 mai 2022

17 juil. 2007 à 15:05
j'ai fait ça

01 SLD_CENT    PIC 9(13)v99.
01 SLD_CENT2   redefines SLD_CENT  PIC s9(15).


mais ça change rien, j'ai toujours 199 au lieu de 199235
0