Rechercher : dans
Par :

[COBOL] conversion decimal en entier

Dernière réponse le 2 aoû 2007 à 08:59:46 konteriano, le 17 jui 2007 à 14:05:00 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 2.0.0.2

Meilleures réponses pour « [COBOL] conversion decimal en entier » dans :
Conversion d'une adresse IP en entier 32 bits VoirNous allons faire un ping sur commentcamarche.net, pour récupérer l'adresse IP (voir en gras) $ ping -c1 commentcamarche.net PING commentcamarche.net (194.169.240.130) 56(84) bytes of data. 64 bytes from www.commentcamarche.org (194.169.240.130):...
Conversion d'un nombre entier 32 bits en IP VoirConversion d'un nombre entier 32 bits en IP Nombre à convertir : 3265917058 Représentation binaire 11000010 10101001 11110000 10000010 - 3265917058 00000000 00000000 00000000 11000010 - 3265917058 >> 24 ( 194 ) 11000010 10101001 11110000...
VBScript - Types de données VoirLe type de données Variant Le type d'une variable correspond à la manière dont l'ordinateur stocke la variable en mémoire, c'est-à-dire la succession de 0 et de 1 dans les cases mémoire. VBScript comprend un type de données par défaut pouvant...

1

blux, le 17 jui 2007 à 14:17:45

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).
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

2

konteriano, le 17 jui 2007 à 14:25:49

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?

Répondre à konteriano

3

blux, le 17 jui 2007 à 14:36:21

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.
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

4

konteriano, le 17 jui 2007 à 14:51:16

ç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)

Répondre à konteriano

5

blux, le 17 jui 2007 à 15:01:29

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).
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

6

konteriano, le 17 jui 2007 à 15:05:19

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

Répondre à konteriano

7

 pjnoel, le 2 aoû 2007 à 08:59:46

Working :
05 W-ESSAI.
10 SLD-CENT PIC 9(13)V99.
10 SLD-CENT2 REDEFINES SLD-CENT PIC 9(15).

10 SLD-DISPLAY PIC Z(12)9V,99.

procédure :
MOVE 1992.35 TO SLD-CENT.
MOVE SLD-CENT TO SLD-DISPLAY.
DISPLAY 'SLD-DISPLAY DE SLD-CENT=' SLD-DISPLAY.
MOVE SLD-CENT2 TO SLD-DISPLAY.
DISPLAY 'SLD-DISPLAY DE SLD-CENT2=' SLD-DISPLAY.

sysout :
SLD-DISPLAY DE SLD-CENT= 1992,35
SLD-DISPLAY DE SLD-CENT2= 199235,00

Répondre à pjnoel