Transformer 0.5 en 0,5 [Résolu]

cs_Peone 16 Messages postés mercredi 8 février 2006Date d'inscription 12 mars 2006 Dernière intervention - 16 févr. 2006 à 11:53 - Dernière réponse : jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention
- 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
Afficher la suite 

9 réponses

Répondre au sujet
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 16 févr. 2006 à 12:51
+3
Utile
salut :

réponse donnée hier dans un autre post

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





@+

jlen
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jlen100
cs_saravana 91 Messages postés vendredi 25 mars 2005Date d'inscription 18 octobre 2007 Dernière intervention - 16 févr. 2006 à 12:44
0
Utile
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.
++
Commenter la réponse de cs_saravana
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 16 févr. 2006 à 12:48
0
Utile
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.
Commenter la réponse de cs_rt15
cs_Peone 16 Messages postés mercredi 8 février 2006Date d'inscription 12 mars 2006 Dernière intervention - 16 févr. 2006 à 13:36
0
Utile
Un grand merci ca tourne nickel

Bye


Peone
Commenter la réponse de cs_Peone
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 16 févr. 2006 à 19:06
0
Utile
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 !
Commenter la réponse de ni69
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 16 févr. 2006 à 19:36
0
Utile
salut ni69

on peut aussi faire

if decimalseparator=',' then

StrToFloat(chaine,'.')

else

StrToFloat(chaine,'.');

@+

jlen
Commenter la réponse de jlen100
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 16 févr. 2006 à 19:39
0
Utile
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
Commenter la réponse de jlen100
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 16 févr. 2006 à 19:46
0
Utile
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 !
Commenter la réponse de ni69
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 16 févr. 2006 à 19:55
0
Utile
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
Commenter la réponse de jlen100

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.