Problème TextBox Valeur sous la virgule

Sojojo Messages postés 41 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 7 septembre 2005 - 30 mai 2005 à 10:56
Sojojo Messages postés 41 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 7 septembre 2005 - 30 mai 2005 à 14:17
J'ai regarder un peu partout sur le Forum pour trouver une solution a mon problème mais rien n'y fait.
Je vous expliquer brièvement:
je dois saisir dans un textbox un nombre a virgule ou non, le problème est que les nombre a virgules sont transformés en entier ex: 50.2 => 50.
ca ce présente de cette forme :
valparamemission(1) = Val (text2.text)
G déjà remplacé Val() par CDbl() mais j'ai toujour le meme problème
si quelqu'un peu m'aider .
merci

9 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
30 mai 2005 à 11:03
Salut

je pense que cela vient du type que tu as donné à ta variable lors de sa déclaration.
Essayes ça :


Dim d
As
Decimal

d = TextBox1.Text

@+
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
30 mai 2005 à 11:06
Bonjour,
et comment est décrit valparamemission(1) ???

[ car si on fait msgbox val(text2.text) c'est bon ]
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0
Sojojo Messages postés 41 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 7 septembre 2005
30 mai 2005 à 11:46
le problème c ke je ne peut pas faire dim d as decimal, j'ai un message qui s'affiche attendu : new ou nom de type

pour la deuxieme reponse valparamemission(1) est defini as integer
0
Sojojo Messages postés 41 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 7 septembre 2005
30 mai 2005 à 11:51
mon autre problème c'est que valparamemission(1) doit etre as integer et il faut ke la valeur a virgule devienne une valeur décimale
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 mai 2005 à 11:52
Integer c'est des entiers donc sans virgule !



Dim valparamemission() As Single 'ou Double



NB: Decimal existe en VB6 mais pas de cette façon

Daniel
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
30 mai 2005 à 12:04
Cela vient aussi de ta config wndows. change le parametre : panneau de config + options ergionales pour mettre le point a la place de la virgule.
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
30 mai 2005 à 12:05
sojojo>Tu as écrit "il faut ke la valeur a virgule devienne une valeur décimale" ???????

Danel> Merci pour l'info (en fait je ne connaît pas bien vb6)

@+
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 mai 2005 à 12:19
Le seul moyen de le mettre dans un Integer c'est de le transformer en entier.

garder seulement un chiffre après la virgule.

et limiter le maximum à 3276.7





valparamemission(1) = Val("50.2") * 10

Daniel
0
Sojojo Messages postés 41 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 7 septembre 2005
30 mai 2005 à 14:17
le problème c que la valeur que je rentre dans la zone de texte est un valeur qui va me servir a paramétrer un variateur de vitesse.
pour les paramètres, je transforme la valeur decimale en une valeur avecune virgule en fonction du signe, de l'exposant, et de la mantisse.
pour modifier le paramètre je dois faire l'inverse (càd: passer d'une virgule flottante a une valeur décimale sans virgule)
j'utilise c trois fonctions pour lire les valeurs. je ne sais pas faire l'inverse

'*******************************************
'Fonction: toBi
' Passe un nombre decimal en une valeur binaire.
'*******************************************
Function toBi(ByVal Valeur)
Dim bValeur() 'Valeur en Binaire
Dim ValeurMarque
Dim i, j
Dim MSBnr


ValeurMarque = Valeur


i = 1
Do
If Valeur > (2 ^ i) - 1 Then
i = i + 1
Else
MSBnr = i
Exit Do
End If
Loop Until i >= 64

If i >= 64 Then
MsgBox "ERREUR: Zone Dépassée"
End If


ReDim bValeur(MSBnr - 1)


For i = MSBnr - 1 To 0 Step -1
If Valeur / 2 ^ i > 1 Then
bValeur(i) = 1
Valeur = Valeur - 2 ^ i
ElseIf Valeur / 2 ^ i = 1 Then
bValeur(i) = 1
For j = i - 1 To 0 Step -1
bValeur(j) = 0
Next
Exit For
Else
bValeur(i) = 0
End If
Next


toBi = bValeur


End Function


'*******************************************
'Fonction: CalcFloat
' Calcul la valeur du le télégramme réponse
' pour la mettre en valeur flottante.
'*******************************************
Function CalcFloat(ByVal AntwDW)


Dim Vorz, Mant, Expo
Dim Dvorz, Dmant, Dexpo
Dim MantBi, i, j
Dim Mantlaenge
Dim interm2
Vorz = Fix(AntwDW / 2 ^ 31) 'Filtre le signe
Expo = Fix((AntwDW - Vorz * 2 ^ 31) / 2 ^ 23) 'Filtre l'exposant
Mant = AntwDW - Vorz * 2 ^ 31 - Expo * 2 ^ 23 'Filtre une mantisse


Dvorz = (-1) ^ Vorz
Dexpo = 2 ^ (Expo - 127)


MantBi = toBi(Mant)
If UBound(MantBi) < 22 Then
Mantlaenge = UBound(MantBi)
ReDim Preserve MantBi(22)
For i = 22 To Mantlaenge + 1 Step -1
MantBi(i) = 0
Next
End If


Dmant = 1
j = 1
For i = 22 To 0 Step -1
Dmant = Dmant + MantBi(i) * 1 / (2 ^ j)
j = j + 1
Next


interm2 = Dvorz * Dexpo * Dmant CalcFloat Round(interm2, 4) 'Round Renvoie un nombre arrondi à un nombre spécifié de positions décimales


End Function



'*******************************************
'Function: HtoD
' Passe en une valeur Hexadécimale en une valeur decimale
'*******************************************
Function HtoD(Zahl)


Dim arZahl As String
Dim lenZahl
Dim Ergebnis
Dim chiffre As Double
Dim i
Trim (Zahl)
lenZahl = Len(Zahl)
For i = 0 To lenZahl - 1
arZahl = Mid(Zahl, lenZahl - i, 1)
If arZahl "0" Then chiffre 0 * 16 ^ iIf arZahl "1" Then chiffre 1 * 16 ^ iIf arZahl "2" Then chiffre 2 * 16 ^ iIf arZahl "3" Then chiffre 3 * 16 ^ iIf arZahl "4" Then chiffre 4 * 16 ^ iIf arZahl "5" Then chiffre 5 * 16 ^ iIf arZahl "6" Then chiffre 6 * 16 ^ iIf arZahl "7" Then chiffre 7 * 16 ^ iIf arZahl "8" Then chiffre 8 * 16 ^ iIf arZahl "9" Then chiffre 9 * 16 ^ iIf arZahl "A" Or arZahl "a" Then chiffre = 10 * 16 ^ iIf arZahl "B" Or arZahl "b" Then chiffre = 10 * 16 ^ iIf arZahl "C" Or arZahl "c" Then chiffre = 10 * 16 ^ iIf arZahl "D" Or arZahl "d" Then chiffre = 10 * 16 ^ iIf arZahl "E" Or arZahl "e" Then chiffre = 10 * 16 ^ iIf arZahl "F" Or arZahl "f" Then chiffre = 10 * 16 ^ i'



Ergebnis = Ergebnis + chiffre
Next


HtoD = CDbl(Ergebnis)'


End Function
0
Rejoignez-nous