Bonjour,
Je suis en train d'ecrire un programme pour lequel j'ai besoin d'une bonne precision de calcul. Or j'ai un probleme que je ne sais pas resoudre :
Si je fais la chose suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
real p, q, r
 
write(*,*) 'entrer la valeur de p'
read(*,*) p
q = 1 - p
r = 1 - p - q
write(*,*) p, q, r
et que je rentre par exemple 0,8, il me ressort 0,800000012, 0,200000003 et -1,4900116E-008
Alors evidemment les erreurs se cumulent et je me retrouve parfois avec des probabilites calculees dont les valeurs sont superieures a 1 !

Comment peut-on faire pour que 0,2 soit egal à 0,2 et que 0,8 soit egal à 0,8 ? J'ai tente de declarer p, q, r en double precision, ca ne change rien.
Est-ce dû au format du read ?

Merci d'avance