Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Pascal Vernie
Messages : 127 Inscription : mar. 15/mars/2005 16:37
Message
par Pascal Vernie » jeu. 23/nov./2006 16:28
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
Jacobus
Messages : 1559 Inscription : mar. 06/avr./2004 10:35
Contact :
Message
par Jacobus » jeu. 23/nov./2006 16:47
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...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Dorian
Messages : 489 Inscription : mar. 15/mars/2005 15:33
Message
par Dorian » jeu. 23/nov./2006 16:55
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 ...
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » jeu. 23/nov./2006 16:59
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
Pascal Vernie
Messages : 127 Inscription : mar. 15/mars/2005 16:37
Message
par Pascal Vernie » jeu. 23/nov./2006 17:57
mini$ et maxi$ je les reccupère dans un fichier .txt.
comment déclarer une variable text en flottant.
Flype
Messages : 2431 Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes
Message
par Flype » jeu. 23/nov./2006 18:47
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 ).
Dorian
Messages : 489 Inscription : mar. 15/mars/2005 15:33
Message
par Dorian » jeu. 23/nov./2006 18:57
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 ^^.
Pascal Vernie
Messages : 127 Inscription : mar. 15/mars/2005 16:37
Message
par Pascal Vernie » jeu. 23/nov./2006 19:15
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
Flype
Messages : 2431 Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes
Message
par Flype » jeu. 23/nov./2006 19:19
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
Dernière modification par
Flype le jeu. 23/nov./2006 19:23, modifié 1 fois.
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » jeu. 23/nov./2006 19:22
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
Flype
Messages : 2431 Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes
Message
par Flype » jeu. 23/nov./2006 19:25
ah - pardon dobro - meme idée
Pascal Vernie
Messages : 127 Inscription : mar. 15/mars/2005 16:37
Message
par Pascal Vernie » jeu. 23/nov./2006 19:34
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