Page 1 sur 1
					
				Calcul simple
				Publié : jeu. 23/nov./2006 16:28
				par Pascal Vernie
				Bonjour à tous
Pourquoi ce code :
Code : Tout sélectionner
mini$ = "-0.20"
maxi$ = "+1.00"
mini = ValF(mini$)
maxi = ValF(maxi$)
resultat.f = (mini + maxi)/2
Debug resultat.f
me donne 0.5 comme resultat au lieu de 0.4
merci de votre aide.
Pascal
 
			 
			
					
				
				Publié : jeu. 23/nov./2006 16:47
				par Jacobus
				Code : Tout sélectionner
mini$ = "-0.20" 
maxi$ = "+1.00" 
mini = ValF(mini$) :Debug mini
maxi = ValF(maxi$) :Debug maxi 
Resultat.f = (mini + maxi)/2 
Debug Resultat.f
tu as la réponse...
 
			 
			
					
				
				Publié : jeu. 23/nov./2006 16:55
				par Dorian
				Car tes variables mini et maxi sont entières, lorsque le prog met les valeurs dedans, ils les arrondis.
Il faut les déclarer en float :
mini.f ...
maxi.f ...
			 
			
					
				
				Publié : jeu. 23/nov./2006 16:59
				par Backup
				oui maxi et mini ne sont pas flottant deja !! 
Code : Tout sélectionner
mini$ = "-0.20"
maxi$ = "+1.00"
mini.f =ValF(mini$) :Debug mini
maxi.f = ValF(maxi$) :Debug maxi
Resultat.f = (mini + maxi)/2
Debug Resultat.f
 
			 
			
					
				
				Publié : jeu. 23/nov./2006 17:57
				par Pascal Vernie
				mini$ et maxi$ je les reccupère dans un fichier .txt.
comment déclarer une variable text en flottant.
			 
			
					
				
				Publié : jeu. 23/nov./2006 18:47
				par Flype
				salut,
dobro vient d'écrire exactement ce dont tu as besoin. tout est là. 
tu utilises ValF() et c'est bien ! c'est exactement ce qu'il faut faire pour recuperer ta valeur en 'flottant' depuis une variable texte.
par contre il faut affecter la valeur reçue par ValF() dans une variable flottante ( ou double avec ValD ).
			 
			
					
				
				Publié : jeu. 23/nov./2006 18:57
				par Dorian
				Pascal Vernie a écrit :mini$ et maxi$ je les reccupère dans un fichier .txt.
comment déclarer une variable text en flottant.
C'est pas ceux là mais les 2 du dessous.
D'où l'avantage d'avoir des nom de variables bien distincts ^^. 

 
			 
			
					
				
				Publié : jeu. 23/nov./2006 19:15
				par Pascal Vernie
				Désolé ce soir je dois être HS mais le code suivant donne toujours 0.5.
mini$= "-0,20"
maxi$ = "+1,00"
a.d = ValD(mini$)
b.d = ValD(maxi$)
resultat.d = (a.d + b.d)/2
Debug resultat.d
Je vais manger cela va peut-être me remettre le cerveau en place.
Pascal
			 
			
					
				
				Publié : jeu. 23/nov./2006 19:19
				par Flype
				et si tu mettais des points '.' au lieu de virgules ',' dans tes chaines ?
si tu bosses depuis un fichier texte dans lequel toutes les valeurs flottantes sont avec une virgule (fichier CSV Excel par ex ?) utilise la fonction ReplaceString()
par exemple comme çà :
Code : Tout sélectionner
Macro P(source)
  ReplaceString(source, ",", ".")
EndMacro
mini$= "-0,20"
maxi$ = "+1,00"
a.d = ValD(P(mini$))
b.d = ValD(P(maxi$))
resultat.d = (a.d + b.d)/2
Debug resultat.d 
 
			 
			
					
				
				Publié : jeu. 23/nov./2006 19:22
				par Backup
				Pascal Vernie a écrit :Désolé ce soir je dois être HS mais le code suivant donne toujours 0.5.
mini$= "-0,20"
maxi$ = "+1,00"
a.d = ValD(mini$)
b.d = ValD(maxi$)
resultat.d = (a.d + b.d)/2
Debug resultat.d
Je vais manger cela va peut-être me remettre le cerveau en place.
Pascal
Code : Tout sélectionner
mini$= "-0,20"
maxi$ = "+1,00"
mini$=ReplaceString(mini$,",",".")
maxi$=ReplaceString(maxi$,",",".")
a.d = ValD(mini$)
b.d = ValD(maxi$)
Resultat.d = (a.d + b.d)/2
Debug Resultat.d 
 
			 
			
					
				
				Publié : jeu. 23/nov./2006 19:25
				par Flype
				ah - pardon dobro - meme idée 

 
			 
			
					
				
				Publié : jeu. 23/nov./2006 19:34
				par Pascal Vernie
				Le Grand-pére vous remercie de vos réponses, ce n'est pas facile de s'occuper des deux petites "teignes" et de réfléchir lorsque la Grand-mére n'est pas là.
Dans mon dernier code j'avais effectivement laissé les virgules au lieu de points.
C'est pas tout ça mais les "Lustrucru" vont être trop cuites, j'y vais sinon ça va barder.
Merci encore 
Amitiés
Pascal