Gambas France BETA


Pas de compte ? Incription

convertir resultat textbox en float

1
AuteurMessages
Invité#1 Posté le 3/4/2010 à 14:14:00
Bonjour et bon week pour ceux qui bossent pas !

1
DIM a AS floatTextBox1.Text = -12.365


convertir en float ?

a= Cfloat(TextBox1.Text) me transforme le résultat en -12
a= cfloat(val(textbox1.text)) : erreur want float , got null instead

val transforme bien un string en nombre?
cfloat convertie un nombre en float?
jeanyvon#2 Posté le 3/4/2010 à 15:29:00
Gambas? Ma! Et gustoOuaip!
c'est ton point que gambas ne digère pas. Fait d'abord : a = replace(textbox1.text,".",",") ensuite b = cfloat(val(a)). Mais à mon avis tu devrais tester la présence du point avec instr
A+
JY
Vieillir? On peut retarder mais pas y échapper!
micio#3 Posté le 3/4/2010 à 15:59:00
Peut-être ainsi >

1
PUBLIC SUB Form_Open() TextBox1.Text = -12.365ENDPUBLIC SUB Button1_Click() DIM x AS FLOAT x = TextBox1.Text x *= 3 TextLabel1.Text = xEND
jeanyvon#4 Posté le 3/4/2010 à 16:42:00
Gambas? Ma! Et gustoSalut Micio
Honnêtement je ne comprend pas pourquoi ton code fonctionne. Ce qui sort d'un textbox c'est un string (type mismatch), il devrait y avoir une erreur et il n'y en a pas. Comprend pas
A+
JY
Vieillir? On peut retarder mais pas y échapper!
gambix#5 Posté le 3/4/2010 à 16:53:00
Faire simple !ou alors dim f as float

f=val(textbox.text)


CFloat converti en tenant compte des spécificité locale ... en france le séparateur de décimale est ","

Val utilise le système internationale ou le séparateur de décimale est le "."
Moins de texte dans une signature c'est agrandir son espace.
micio#6 Posté le 3/4/2010 à 16:57:00
Dans la doc il est dit que la propriété 'text' est de type 'String' mais je pense qu'en fait il s'agit d'un type 'Variant', enfin c'est ainsi que je le comprends.
gambix#7 Posté le 3/4/2010 à 16:59:00
Faire simple !en faite jean yvon gambas est un langage a typage fort ce qui permet certain racourci.

(typage fort = toute les variables sont typée (ont un type))



genre

string = float est traduit par le compilateur en

string = str(float)


float = string en float=val(string)

etc

c'est des racouci comme :

mid(s,3, 4) = "titi"

qui est remplacé en interne par :

s = Left(s,3)&"titi"&mid(s,3+4)




:study:
Moins de texte dans une signature c'est agrandir son espace.
Invité#8 Posté le 3/4/2010 à 17:26:00
OK J-Yvon

j'ai fait ta solution cela fonctionne

J'ai pas encore essayé le code de Micio

A+
Invité#9 Posté le 3/4/2010 à 21:23:00
micio Bsoir

dans ton code tu inscris

1
DIM x AS FLOAT x = TextBox1.Text x *= 3 TextLabel1.Text = xEND


que veut dire : x *= 3
gambix#10 Posté le 3/4/2010 à 23:04:00
Faire simple !facile: il te suffit de lire cela :
http://gambasdoc.org/help/cat/assignop?fr
Moins de texte dans une signature c'est agrandir son espace.
spheris#11 Posté le 4/4/2010 à 19:52:00
et tant qu'on y est avec les raccourci de code, je viens de découvrir ceci:

Au lieu d'écrire :

dim monchemin as String
dim sousrepertoire as String
monchemin = application.path & "/" & sousrepertoire

, on peut écrire :

monchemin = application.path &/ sousrepertoire

mais je n'ai pas trouvé ou cette astuce était dans la doc.
A+
;)
gambix#12 Posté le 4/4/2010 à 20:08:00
Faire simple !ah ? et pourtant c'est une des plus vieille astuces !

il faut savoir que &/ analise la chaine et n'ajoute le '/' que si nécéssaire

donc "machaine/" &/ "machaine" donne machaine/machaine et non machaine//machaine
Moins de texte dans une signature c'est agrandir son espace.
1