[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 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317
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 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317 > 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 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024
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 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317 > blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024
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 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024
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