Pb avec EConvert [Résolu]

Signaler
Messages postés
32
Date d'inscription
vendredi 29 novembre 2002
Statut
Membre
Dernière intervention
27 avril 2005
-
Messages postés
323
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
-
Voila j'ai ceci :

Met donnée continne sa :

result := '35';
montant[i+1] := '0';
montant[i+1] := '0';

dans une function j'ai ceci :

result := result + Chr(46) + montant[i+1] + montant[i+2];
result := IntToStr(Round(StrToInt(result)));

sa ne marche pas, et me declanche une erreur EConvertError..
vous avez une iddée ?

2 réponses

Messages postés
6
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
21 novembre 2004

Bonjour,

A priori, Chr(46) est l'équivalent de '.'.
result contient donc après la première instruction '35.00'.

'35.00' n'est pas une valeur entière (correcte), et la fonction StrToInt cherche à convertir du texte en un entier... ce qui n'est évidemment pas possible et déclenche donc une execption EConvertError (erreur de conversion de donnée).
Messages postés
323
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
1
Salut freax,

wedebe a tout à fait raison, si tu cherches à Convertir une chaine de caractère en Real il faut utiliser la function StrToFloat StrToInt converti une chaine de caractère en Entier.

Afin de ne pas recontrer d'autre EConvertError avec la function StrToFloat, je te conseil d'utiliser le caractère décimale de Delphi, que tu peux initialiser ta guise.

result := result + DecimalSeparator + montant[i+1] + montant[i+2];
result := IntToStr(Round(StrToFloat(result)));


Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.