salut
Existe t' il une fonction en fortran77 qui permet de convertir une chaine de character ( '1234.12' par exemple ) en reel (1234.12 )
:merci:
Version imprimable
salut
Existe t' il une fonction en fortran77 qui permet de convertir une chaine de character ( '1234.12' par exemple ) en reel (1234.12 )
:merci:
Tu peux utiliser read() en donnant une chaine de caractere comme source des donnees, plutot qu'un specificateur de fichier. Mais c'est une extension au standard Fortran, et ne sera peut etre pas acceptee par ton compilateur (ceci dit, ceux que je connais l'acceptent avec un avertissement).
Code:
1
2
3
4
5 character (len=10), parameter :: string = '1234.5' real :: value read(string,*) value
Mon compilateur n acepte pas cette extension.
j ai trouve une autre methode . je convertie la partir entier sous la forme 1234.00
puis la partie decimale en entier (12) et je divise cette patie decimal par 100 j obtiens 0.12
et j additionne 1234.00+0.12=1234.12
codeCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 !STRING = character a convertir en entier character string*50, digits*10 integer ln,m,k,i,entier ln=len_trim(string) ! longueur du character digits = '0123456789' entier = 0 m = 1 do i = ln,1,-1 k = index(digits,string(i:i)) - 1 entier = entier + k*m m = 10*m enddo write (*,*)entier end
L'exemple qui suit est en Fortran77, il fonctionne avec le compilateur ifort :
Code:
1
2
3
4
5
6
7
8
9 program string2real real x character*7 s s = "1234.56" read (s,100) x 100 format (F7.2) print *,x end
:merci: fafaro
c est encore plus simple que ce que je fesais