Transformer 0.5 en 0,5

Résolu
cs_Peone Messages postés 16 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 12 mars 2006 - 16 févr. 2006 à 11:53
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 16 févr. 2006 à 19:55
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

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 févr. 2006 à 12:51
salut :

réponse donnée hier dans un autre post

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





@+

jlen
3
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007
16 févr. 2006 à 12:44
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.
++
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 févr. 2006 à 12:48
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.
0
cs_Peone Messages postés 16 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 12 mars 2006
16 févr. 2006 à 13:36
Un grand merci ca tourne nickel

Bye


Peone
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 13
16 févr. 2006 à 19:06
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 !
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 févr. 2006 à 19:36
salut ni69

on peut aussi faire

if decimalseparator=',' then

StrToFloat(chaine,'.')

else

StrToFloat(chaine,'.');

@+

jlen
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 févr. 2006 à 19:39
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
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 13
16 févr. 2006 à 19:46
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 !
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 févr. 2006 à 19:55
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
0