Bonjour a tous
j'aimerais transformer un string en float : StrToFloat (combobox->Text)
mais ca ne marche pas. J'utilise ItemIndex pour retrouver le contenu de Text mais je pense qu'il existe une soluce plus simple ?!?
merci de vos reponses
Salut
Version imprimable
Bonjour a tous
j'aimerais transformer un string en float : StrToFloat (combobox->Text)
mais ca ne marche pas. J'utilise ItemIndex pour retrouver le contenu de Text mais je pense qu'il existe une soluce plus simple ?!?
merci de vos reponses
Salut
A prioris, le code que tu as envoy� est correct. Qu'est ce qui ne marche pas?
Tu peux aussi faire :
Code:
1
2 double dval = combobox->Text->ToDouble();
C'est pas plutot comme �a qu'on recup�rerait la valeur string/float
FloCode:StrToFloat (combobox->ItemIndex[numero_de_ligne]->Text)
Pour une ComboBox, text est le texte actuellement dans la zone de saisie.
oui mais est-ce
ouCode:StrToFloat(combobox->IntemIndex[nb_ligne]->Text);
?Code:StrToFloat(combobox->Text);
Flo.
Merci a tous pour vos reponses
Ce que je tente d'obtenir c'est :
Diametre->Text = StrToFloat (FloatToStr (Combobox->Text) * Pi);
Ca compile mais s'arrete avec :
projet Circonference.exe raised exception class econvert error message "38.1" is not a valid floating point value.
En un mot, la conversion de string vers float n'est pas correcte.
Je vais essayer les soluces que j'ai recues.
Salut.
Non, c'est pas �a. Le probl�me est que sur ton ordi, le s�parateur des float doit �tre la virgule et non le point. J'ai eu un pb de portabilit� � cause de �a. Donc il faut que dans ton combobox, tu aies 38,1 et non 38.1
ou bien tu peut definir le serapateur :Citation:
Donc il faut que dans ton combobox, tu aies 38,1 et non 38.1
DecimalSeparator = '.';
initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais.Citation:
DecimalSeparator is the character used to separate the integer part from the fractional part of a number. The initial value is fetched from LOCALE_SDECIMAL.
autrement, tu peux aussi rechercher le '.' et le remplacer par une virgule avant de faire la conversion ce que ton utilisateur appr�ciera car il verra que ton logiciel a bien interpr�t� ce qu'il voulait et l'a adapt� � son fonctionnement. �a c'est de l'IHM ! :lol:
clovis >
je pense plut�t que c'est comme ca :Citation:
Diametre->Text = StrToFloat (FloatToStr (Combobox->Text) * Pi);
ne pas confondre FloatToStr et StrToFloatCode:Diametre->Text = FloatToStr ( StrToFloat(Combobox->Text) * Pi);
Ca c'est vraiment de la bidouille :lol:Citation:
autrement, tu peux aussi rechercher le '.' et le remplacer par une virgule avant de faire la conversion ce que ton utilisateur appr�ciera car il verra que ton logiciel a bien interpr�t� ce qu'il voulait et l'a adapt� � son fonctionnement. �a c'est de l'IHM
Je ne connaissais pas. Merci.Citation:
initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais.Citation:
DecimalSeparator is the character used to separate the integer part from the fractional part of a number. The initial value is fetched from LOCALE_SDECIMAL.
C'etait bien cela. Une virgule au lieu d'un point. :D
Ce qui m'etonne est que mon systeme est entierement US et donc le point devrait indiquer les decimales ?!?
Il ne me reste plus qu'a trouver cette variable dans les settings et de la modifier.
Merci de votre aide
Moi, j'ai un syst�me th�oriquement fran�ais, et pourtant c'est un point. Chez des amis (� 1km de chez moi, dc en France), c'est une virgule, et pourtant, le syst�me est fran�ais. Allez comprendre !
Salut,
Panneau de configuration, param�tres r�gionaux, onglet nombres, champ symbole d�cimal.
@+
Fr�d�ric
Merci :D pour le parametre virgule/point
Est-il possible de controler la ponctuation utilisee par Windows pour les decimales
Salut
???
De quoi parles-tu ?
Il me semble que je viens de te r�pondre : windows contr�le la ponctuation des d�cimales via les param�tres r�gionaux.
@+
Citation:
ou bien tu peut definir le serapateur :
Code:DecimalSeparator = '.';
Citation:
DecimalSeparator is the character used to separate the integer part from the fractional part of a number. The initial value is fetched from LOCALE_SDECIMAL.
initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais
Je me demandais s'il existait une fonction pour retrouver le setting du point/virgule pour les decimales, dans le registre de windows. Afin d'utiliser la ponctuation choisie par l'utilisateur.
Bon weekend
Salut,
Ici, tu r�cup�res dans lplcdata le s�parateur d�cimal choisi par l'utilisateur :
@+Code:
1
2 char lplcdata[1]; ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, lplcdata, 1);
Fr�d�ric