Transformer 0.5 en 0,5

Résolu
Signaler
Messages postés
16
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
12 mars 2006
-
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
-
Bonjour a tous

CouleursBase[length(CouleursBase)-1][1]:=Trunc(StrToFloat(tabTemp[0])*255);

Je dois faire ce calcul. Dans tabTemp[0], j'ai 0.5 , il me faudrait 0,5

Existe-t-il en delphi une fonction qui me fait ca. Et si j'ai 1 ou 0 bien sur, ca dois reste 1 ou 0

Merci beaucoup


Peone

9 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
salut :

réponse donnée hier dans un autre post

chaine:=stringreplace(chaine,'.',decimalseparator,[rfReplaceAll]);





@+

jlen
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007

tu peux faire par exemple avec deux edit et un button, dans le onclick du button ajoute ca:
procedure TForm1.button1click(Sender: TObject);
Var St:string;
i:integer;
begin
St:=edit1.Text;
for i:=1 to Length(St) do
if St[i]='.' then St[i]:=',';
edit2.Text:=st;
end;

si tu tapes 0.5 dans le premier edit , lorsque tu appuies sur le bouton le deuxieme edit affichera 0,5.
++
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Il y a une fonction qui fait le code de saravana, mais j'ai un doute sur son nom.

ReplaceStr je crois.

Elle prend en argument la chaîne ou remplacer, la chaîne à rechercher, et la chaîne à mettre à la place de la chaîne recherchée.
Messages postés
16
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
12 mars 2006

Un grand merci ca tourne nickel

Bye


Peone
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Et si l'utilisateur entre un nombre avec virgule sur un ordinateur configuré pour accepter des points comme séparateurs décimaux ? Ca pose un problème ! (hé oui, il faut bien voir tous les cas de figure!), donc je proposerais :
chaine:=stringreplace(chaine,'.',decimalseparator,[rfReplaceAll]); // Une fois le point
chaine:=stringreplace(chaine,',',decimalseparator,[rfReplaceAll]); // Une fois la virgule
Comme ça, on s'adapte vraiment à l'ordinateur !

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
salut ni69

on peut aussi faire

if decimalseparator=',' then

StrToFloat(chaine,'.')

else

StrToFloat(chaine,'.');

@+

jlen
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
erreur de recopie dans le post:

il faut faire:

if decimalseparator= ',' then

chaine: =stringreplace(chaine,'.',decimalseparator,[rfReplaceAll])

else

chaine:=stringreplace(chaine,',',decimalseparator,[rfReplaceAll]);

honte à moi

@+

jlen
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Bien sûr que l'on t'excuse !
Je ne pense pas que le test du caractère décimal en vigueur soit nécessaire, car l'action d'une procédure n'engendre pas de modification sur l'autre...
Après, s'il s'agit de gagner 1ms sur la procédure StringReplace non exécutée (car écartée par le test), c'est un autre problème, mais généralement les nombres traités n'ont pas une infinité de chiffres, et la rapidité de traitement de ces procédures est vraiment minime... Donc le temps de traitement est quasi-identique

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
c'est mon habitude de programmer ---> quand une action n'est pas
utile on la passe par contre j'alourdis légèrement le code (un test
suppémentaire)

Comme je dis toujours autant de programmeur autant de codes!!

le principal au fond c'est le résultat "peu importe le flacon pourvu qu'on ait l'ivresse"



@+

jlen