Gambas France BETA


Pas de compte ? Incription

[RESOLU] Float : Point ou virgule ?

Ce sujet est résolu.

1
AuteurMessages
manu#1 Posté le 16/10/2011 à 20:35:18
Avec Gambas ca roule !Bonsoir,

Je rempli un gridview avec un inputbox avec le code suivant :

1
GridView1[GridView1.Row, 1].Text = InputBox("Qté injéré"Saisie Quantité", GridView1[GridView1.Row, 1].Text)


Puis dans un second gridview, je veux afficher le total avec une boucle comme ceci :

1
2
3
4
5
6
7
8
9
10
11
PUBLIC SUB CalcApports()
DIM i AS INTEGER
DIM iLignes AS INTEGER = GridView1.Rows.Count - 1
DIM fMsi AS FLOAT

FOR i = 0 TO iLignes
fMsi += Val(GridView1[i, 1].Text)
GridView3[1, 1].Text = fMsi
NEXT

END


Ca marche très bien, si je rentre des entiers ou des décimales avec une virgule (,) comme séparateur. Si je saisi ma valeur décimale avec un point (.), alors la fonction val() censé convertir la string (issue du gridview) en décimale, ne reconnait pas le format et me renvois un beau gros NULL !

Qu'ais-je mal fait ou pas compris ?

Merci d'avance
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
jeanyvon#2 Posté le 17/10/2011 à 06:09:00
Gambas? Ma! Et gustoSalut,
pour moi c'est pareille...
J'ai fait un truc qui remplace le point par la virgule et c'est fini

1
2
3
4
5
IF InStr(CStr(textbox1.text), ",") <> 0 THEN
lemontant = Replace(textbox1.text, ",", ".")
ELSE
lemontant = textbox1.Text
ENDIF


bonne journée!
Vieillir? On peut retarder mais pas y échapper!
gambix#3 Posté le 17/10/2011 à 06:35:30
Faire simple !si tu veux utiliser le point systématiquement c'est Cfloat
mais si tu veut un peu de tout ben oui il faut un replace.

CFloat = convention internationnale(le point .)
Val = convention régionale (en france c'est la virgule qui sépare des decimales)
Moins de texte dans une signature c'est agrandir son espace.
gambix#4 Posté le 17/10/2011 à 06:36:16
Faire simple !ha et :

1
FOR i = O TO GridView1.Max


Moins de texte dans une signature c'est agrandir son espace.
manu#5 Posté le 17/10/2011 à 17:15:51
Avec Gambas ca roule !Merci jean-yvon pour l'astuce ;).



CFloat = convention internationnale(le point .)
Val = convention régionale (en france c'est la virgule qui sépare des decimales)


Oui Gambix ! Mais sur le pavé numérique de mon clavier, en bas à droite, c'est un point !On utilise cette touche comme séparateur de décimale !
Libre office par exemple, affiche une virgule, pas un point.

Est t'il possible, sous gambas, d'avoir le même comportement ?
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
gambix#6 Posté le 17/10/2011 à 20:34:44
Faire simple !
1
2
3
4
5
IF InStr(textbox1.text, ",") THEN
lemontant = Replace(textbox1.text, ",", ".")
ELSE
lemontant = textbox1.Text
ENDIF


moui

le plus simple c'est de dire simplement:

1
lemontant = Replace(textbox1.text, ",", ".")


replace fait la vérification et le remplacement si besoin... donc pas besoin de tout le reste
Moins de texte dans une signature c'est agrandir son espace.
jeanyvon#7 Posté le 18/10/2011 à 05:12:10
Gambas? Ma! Et gustoMerci Gambix!
C'est effectivement plus simple encore faut il le savoir..... ;)
Vieillir? On peut retarder mais pas y échapper!
1