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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 double dval = combobox->Text->ToDouble();
Ginnovy
C'est pas plutot comme ça qu'on recupérerait la valeur string/float
Flo
Code : Sélectionner tout - Visualiser dans une fenêtre à part StrToFloat (combobox->ItemIndex[numero_de_ligne]->Text)
Pour une ComboBox, text est le texte actuellement dans la zone de saisie.
Une question concernant C++Builder ? Voici la réponse
Consultez aussi les tutoriels de qualité de la section C/C++
oui mais est-ce
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part StrToFloat(combobox->IntemIndex[nb_ligne]->Text);
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
Une question concernant C++Builder ? Voici la réponse
Consultez aussi les tutoriels de qualité de la section C/C++
ou bien tu peut definir le serapateur :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.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.
Le premier être humain à jeter une insulte plutôt qu'une pierre, est le fondateur de la civilisation. (Freud)
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 !
clovis >
je pense plutôt que c'est comme ca :Diametre->Text = StrToFloat (FloatToStr (Combobox->Text) * Pi);
ne pas confondre FloatToStr et StrToFloat
Code : Sélectionner tout - Visualiser dans une fenêtre à part Diametre->Text = FloatToStr ( StrToFloat(Combobox->Text) * Pi);
Le premier être humain à jeter une insulte plutôt qu'une pierre, est le fondateur de la civilisation. (Freud)
Ca c'est vraiment de la bidouilleautrement, 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.initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais.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.
Une question concernant C++Builder ? Voici la réponse
Consultez aussi les tutoriels de qualité de la section C/C++
C'etait bien cela. Une virgule au lieu d'un point.
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 !
Une question concernant C++Builder ? Voici la réponse
Consultez aussi les tutoriels de qualité de la section C/C++
Salut,
Panneau de configuration, paramètres régionaux, onglet nombres, champ symbole décimal.
@+
Frédéric
Merci 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.
@+
ou bien tu peut definir le serapateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DecimalSeparator = '.';
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
Une question concernant C++Builder ? Voici la réponse
Consultez aussi les tutoriels de qualité de la section C/C++
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char lplcdata[1]; ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, lplcdata, 1);
Frédéric
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager