salut
Existe t' il une fonction en fortran77 qui permet de convertir une chaine de character ( '1234.12' par exemple ) en reel (1234.12 )
![]()
salut
Existe t' il une fonction en fortran77 qui permet de convertir une chaine de character ( '1234.12' par exemple ) en reel (1234.12 )
![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
fafaro
c est encore plus simple que ce que je fesais
Partager