VB6 Problème avec Variable Double... je crois [Résolu]

cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 15 mars 2006 à 18:40 - Dernière réponse : Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention
- 15 mars 2006 à 21:55
Salut...

J'ai un petit problème avec mes résultats....

Je me suis fais un petit programme de conversion (ex. convertir X mètre qui me donne Y Pied)

Je rentre une donnée dans un textbox (ex 122,22) je sélectionne dans mon listbox Mètre pour dire que 122,22 est en mètre et j'appuis sur Enter qui fais apparaitre dans différent textbox la valeur en pied anglais, en pied francais, en Chaîne, en arpent, en Perche etc...

Pour une raison que j'ignore les résultat me donne dans certain texbox que 2 chiffres après la virgule et d'autre textbox j'ai une multitute de chiffre après la virgule. J'ai besoin d'avoir plus de 2 chiffre après la virgule... et je ne sais pas pourquoi il fait ca on dirait qu'il utilise la fonction Round mais je ne l'ai pas codé...

Si quelqu'un peut m'aider

Voici le code pour convertir des mètres en Pied Anglais

ElseIf cboLongueur.Text = "Pied Anglais" Then
VarMetre = CDbl(Val(txtConversion.Text * 30.48)) / 100
VarPiedFrancais = CDbl(Val(txtConversion * 0.9383064))
VarChaine = CDbl(Val(txtConversion * 1.515151)) / 100
VarArpent = CDbl(Val((txtConversion.Text * 30.48) / 100)) / 58.471308
VarPerche = CDbl(Val((txtConversion.Text * 30.48) / 100)) / 5.8471308
VarVerge = CDbl(Val((txtConversion.Text * 30.48) / 100)) / 0.9144

txtPiedAnglais.BackColor = &HE0E0E0
txtPiedAnglais.Text = ""

txtMetre.Text = VarMetre
txtPiedFrancais.Text = VarPiedFrancais
txtChaine.Text = VarChaine
txtArpent.Text = VarArpent
txtPerche.Text = VarPerche
txtVerge.Text = VarVerge

Merci d'avance
Afficher la suite 

4 réponses

Meilleure réponse
cs_jperre 268 Messages postés lundi 9 janvier 2006Date d'inscription 19 janvier 2017 Dernière intervention - 15 mars 2006 à 20:29
3
Merci
Si c'est un problème de virgule flottante, il est possible d'utiliser le type Currency qui, lui est à virgule fixe.
A tester...

Merci cs_jperre 3

codes-sources a aidé 82 internautes ce mois-ci

cs_jperre 268 Messages postés lundi 9 janvier 2006Date d'inscription 19 janvier 2017 Dernière intervention - 15 mars 2006 à 19:09
0
Merci
Pourquoi ne pas utiliser la fonction Format pour afficher les résultats
Exemple TextBoxAffichage.Text=Format(VarMetre,"#0.00000") pour afficher les résultats avec 5 chiffres après la virgule. Si les décimales de droite sont à zéro, elles s'afficheront tout de même à cette valeur.

Je ne sais pas si celà répond à ton problème!...
cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 15 mars 2006 à 20:19
0
Merci
Salut merci pour ta réponse mais cela ne règle pas le problème....

Si par exemple je veux convertir 122,22 mètre en pied
Je fais 122,22 * 0,3048 = 37,252656

Mon programme tronque des chiffres après la virgule donc il fais le calcul mais la réponse est égale 37,25

Ainsi si je fais un Format ca me donne comme réponse 37,2500

:(

Si tu as un autre idée... merci d'avance
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 15 mars 2006 à 21:55
0
Merci
négatif c'est le Val() qui tronque



exemple:

Val("122,22") --> 122

Val("122,22" * 0.3048) --> 37

Val("122,22" * 30.48) --> 3725

Val("122,22") * 30.48 --> 3718.56



solutions:
- si tu garde le Val() il faut un point à la place de la virgule

il vaut mieux aussi avoir un point en sortie

txtConversion = "122.22"

VarMetre = Val(txtConversion.Text) * 30.48 / 100

txtMetre.Text = Str$(VarMetre)



- si tu garde la virgule, il faut pas utiliser Val()

txtConversion = 122.22


VarMetre = txtConversion.Text * 30.48 / 100


txtMetre.Text = VarMetre




Daniel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.