begin process at 2010 02 10 12:38:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Transformer un nombre décimal et l'arrondir à 2 chiffres après la virgule


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Transformer un nombre décimal et l'arrondir à 2 chiffres après la virgule

jeudi 6 mai 2004 à 09:13:57 | Transformer un nombre décimal et l'arrondir à 2 chiffres après la virgule

Rowan

Bonjour à tous et à toutes.

Un grand merci à DELPHIPROG qui a bien répondu à mon problème de chaine de carractère.
Cependant, je n'arrive toujours à faire ce que je veux!
J'explique : J'ai des nombres décimaux que j'extrais d'une table, ex : 1,5698563 ce nombre comporte une virgule.
C'est pour cela que je voulais transformer la virgule en point pour pouvoir utiliser la fonction Formatfloat, du type :
formatfloat ('0.00' , 1.5698563) et obtenir en sortie 1.57
c'est à dire la valeur arrondie à 2 chiffres après la virgule.
La chaine de carractère reçue de type String est alors transtypée comme suit :

Ma procédure.......
var
toto : string;
titi : Double;
Resultat : String;

begin
// chaine reçue après transformation de virgule en point.
// par ex : toto :=1.5698563;
titi:=0;
titi:=StrToFlaot(toto);
Resultat:=FormatFloat('0.00' , titi); // Message d'erreur ICI !
end;

Lorsque je compile j'ai le message d'erreur suivant : type String et Extended non compatible.... Pourtant il faut bien passer en paramètre un réel dans le second paramètre de la fonction Formatfloat ?

Y a t-il une autre Méthode que Formatfloat ?
Peut-on avec un nombre décimal sous la forme 1,5698563 l'arrondir directement sous la forme 1,57 ?

Si quelqu'un a la solution à ce problème, je vous remercie par avance, car je suis bloqué dans l'application que j'essais de développer.

ROWAN : microcom@netcourrier.com
jeudi 6 mai 2004 à 13:48:56 | Re : Transformer un nombre décimal et l'arrondir à 2 chiffres après la virgule

Kenavo

Salut

Ben, à part "StrToFlaot' à la ligne du dessus c'est correct !
Tu peux aussi utiliser la fonction FloatToStrF :
Resultat := FloatToStrF(titi,ffFixed,15,2);
mais il n'y a pas de raison que tu aies une erreur de compilation!
Quant à tronquer la chaîne 2 caractères après le point, c'est possible, mais ça tronque, ça n'arrondi pas !
Resultat := Copy(toto,1,pos('.',toto)+2);

Kénavo

Code, Code, Codec !
jeudi 6 mai 2004 à 15:08:12 | Re : Transformer un nombre décimal et l'arrondir à 2 chiffres après la virgule

japee

Membre Club Administrateur CodeS-SourceS

Arriverais après la bataille ?
Quoi qu'il en soit, je viens de balancer un source traitant de l'utilisation de FormatFloat ici

ARRONDIR UN NOMBRE DÉCIMAL (FORMATFLOAT) - SAISIE VALIDE DE CE NOMBRE

Bonne prog'
jeudi 6 mai 2004 à 16:45:03 | Re : Transformer un nombre décimal et l'arrondir à 2 chiffres après la virgule

japee

Membre Club Administrateur CodeS-SourceS

Rowan :

Tu déclares
toto: String // Ok
toto := 1.5698563; // pas Ok, là c'est un Real !

il faudrait déclarer :
toto := '1,5698563';

sinon là
titi := StrToFloat(toto); // ça ne passera jamais !

Tes ennuis semble venir du fait que tu ne différencies pas :
1.5698563 qui est un Real (avec le point comme séparateur décimal),
'1,5698563' qui est un String (avec la virgule comme séparateur décimal)

C'est pourtant essentiel !

En espérant t'avoir éclairé.

Bonne prog' !


Cette discussion est classée dans : nombre, string, virgule, titi, formatfloat


Répondre à ce message

Sujets en rapport avec ce message

Convertir un nombre en string [ par Frank19 ] Allo, ce que je veux faire c'est convertir un nombre en string ... example :346entrois cents quarante-sixsi vous avez une idée a savoir comme le faire Insertion d'un nombre a virgule dans une listbox [ par lacerto84 ] Salut,J'ai un erreur ECONVERT chaque fois que j'essie d'inserer un nombre a virgule dans une listbox.Pouvez vous m'aider !Merci. transformer un nombre à virgule(style float) en nombre sans virgule (int) [ par Nargzul ] Bonjour J'ai trouvé la fonction round, mais elle arrondi, et moi il me faudrait qu'elle coupe tout simplement tout ce qui dépasse si j'ai le chiffre Aller Rechercher un nombre a virgule dans TEdit [ par Valentin_Loupe ] Bonjour,Je voudrais savoir comment faire pour aller rechercher un nombre à virgule dans un TEdit, puis le multiplier par 11 par exemple et afficher le vérifier le format d'un ShortString [ par zwyx ] Bonjour à tous,Je souhaite récupérer depuis un fichier *.ini le format qui va être appliqué pour afficher les flottants, grâce à la fonction FormatFlo algorithme de conversion des degrés décimaux en degrés sexagésimaux [ par lidia22 ] salut a tous;je voulais consernant  Comment faire pour convertir des degrés décimaux en degrés sexagésimaux en langage DELPHI?exemple:latitude = <font Arrondir un nombre décimal à 2 chiffres après la virgule ? [ par Rowan ] Bonjour,Tous d'abord un grand merci à DELPHIPROGqui a répondu à mon probleme de tranformationde point en virgule et inversement.J'ai toujours un probl EAccessViolation [ par Leucistic ] Bonjour, Je m'excuse d'avance de cette question sûrement très bête mais je bloque dessus depuis 2 jours. Après avoir regardé plusieurs post sur ce f Calculer le nombre d'heure travailler dans le mois [ par orankader ] Bonjour tous le monde j'ai un probmème dans mon programme sur DBgrid entrée sortie le calcul sortie moins entrer se fait correctement total ligne. exe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales