arrond
C ARROND SOURCE CB215821 19/06/17 21:15:00 10229 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Y) -INC CCREEL * * ARRONDI UNE BORNE B DONNEE SOUS LA FORME XXXXX.XX POUR QU'ELLE * SOIT UN MULTIPLE DE PAS AVEC UN ARRONDI SUPERIEUR SI K=1, * INFERIEUR SI K=0 * * * DETERMINE COMMENT FAIRE L'ARRONDI * IF (B.LT.0.D0) THEN IF (K.EQ.0) THEN * ARRONDI PAR EN DESSOUS D'UNE BORNE NEGATIVE C=-1.D0 ELSE * ARRONDI PAR AU DESSUS D'UNE BORNE NEGATIVE C= 0.D0 ENDIF ELSE IF (K.EQ.0) THEN * ARRONDI PAR EN DESSOUS D'UNE BORNE POSITIVE C= 0.D0 ELSE * ARRONDI PAR AU DESSUS D'UNE BORNE POSITIVE C= 1.D0 ENDIF ENDIF * PASSE EN NOMBRE ENTIER POUR AVOIR UN MODULO ENTIER EVITANT LES * PROBLEMES DE CODAGE EN MACHINE DES FLOTTANTS BB=B * 100.D0 IF (BB.LT.0.D0) THEN IB=FLOOR(BB) ELSE IB=CEILING(BB) ENDIF IPAS=CEILING(PAS*100.D0) I =NINT(B/PAS) J =INT(B/PAS) IR =ABS(MOD(IB,IPAS)) * CALCUL DE L'ARRONDI IF (IR .GE. 1) THEN ELSE ARROND=B ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales