begin process at 2010 03 19 00:51:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Bases de données

 > 

arrondir un real


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

arrondir un real

mercredi 24 novembre 2004 à 01:45:26 | arrondir un real

momohbj

mon probleme, une somme d'une colonne que cette derniere
sont des montants (champs calculé)
donc quand je calcule la somme ,les montants ne sont pas reelement à deux chiffres alors il calcule à des chiffres infini aprés la virgule malgres que ces montants sont formatés à 2 ch apres la virgule.
merci!
mercredi 24 novembre 2004 à 02:06:57 | Re : arrondir un real

Bestiol

po très explicite tout ça ...
mercredi 24 novembre 2004 à 03:05:36 | Re : arrondir un real

japee

Membre Club Administrateur CodeS-SourceS
Si le problème consiste à arrondir à 2 chiffres après la virgule, tu peux utiliser la fonction "Format" ainsi :

var
Montant: String;
Flt: Real // (ou tout autre type réel)

Flt := 3.1451;
Montant := Format('%.2f', [Flt]);


(tu obtiens Montant = 3,15)

Pour plus de précisions, voir "Chaînes de format" dans l'aide en ligne de Delphi.

N'oubliez pas de valider "Réponse acceptée" si ça vous convient, de toute manière vous ne pouvez pas valider autre chose !
mercredi 24 novembre 2004 à 07:26:21 | Re : arrondir un real

MoveX

sinon, pour arrondir simplement un reel comme cest si bien dit dans le titre, tu peux utiliser la fonction Trunc(real)= integer;
mercredi 24 novembre 2004 à 13:59:05 | Re : arrondir un real

Kenavo

Si tu veux afficher un résultat arrondi à 2décimales, tu fais comme dit Japee.
Si tu veux que les réels soient réelement arrondis à deux décimales, utilise une fonction du genre :
uses
Math;

{$R *.DFM}

function Precision(Value : real; Decimales : integer) : real;
var
n : Extended;
begin
n := round(intPower(10,Decimales));
Result := Round(Value * n) / n;
end;



Avec la solution Japee :
3.506666 (affiché 3.51) + 2.426666 (affiché 2.43) = 5.933332 sera affiché 5.93
Avec la fonction
Precision(3.506666,2)+Precision( 2.426666,2) = 5.94

Ken@vo
____________________
Code, Code, Codec !

mercredi 24 novembre 2004 à 19:55:53 | Encore, encore, et tjs encore

grandvizir

4ème possibilité:

var s : string;
begin
Str(ExtendedValue:0:2,s);
result:=s;
end;

Pour convertir le point en virgule, on met:

Str(ExtendedValue:0:2,s);
if Pos('.',s)<>0 then s[Pos('.',s)]:=',';
result:=s;

=============
Validez les réponses si ok...

ViewVite : HTML - ZIP
mercredi 24 novembre 2004 à 21:56:20 | Re : arrondir un real

rsca_en_force

ou alors :2:2 pour deux decimale ...
vendredi 26 novembre 2004 à 00:39:49 | Re : arrondir un real

momohbj

comme je suis debutant en prog(delphi),expliquez moi avec precision.
donc j"ai un champs calculé"M"(un produit de2 autres champs),
le resultat est formaté à 2 chiffres aprés la virgule.
le prob: la somme de ce champs(resultats) de tout les enregistts
est faux malgres qu'il est a deux chiffres apres la virgule.
exp:
2,34 +1,33 +1,55 me donne 5,24 au lieu de 5,22.

merci!
vendredi 26 novembre 2004 à 07:53:27 | Re : arrondir un real

Kenavo

Tu dis :"j"ai un champs calculé"M"(un produit de2 autres champs),le resultat est formaté à 2 chiffres aprés la virgule."

Formaté en valeur ou pour l'affichage ?

Le fait de formater un réel avec deux chiffres après la virgule pour l'afficher (conversion reel->chaine) ne modifie en rien la valeur du réel.

Tu n'additionnes pas un réel qui vaut 2,34 mais un réel qui s'écrit 2,34 quand on le représente avec deux chiffres après la virgule. Tout ce que tu peux dire , c'est que 2,335 <= X < 2,345

Par contre formate M avec une fonction comme Precision(X,n) et la plus de problème, le réel n'a plus que deux chiffres après la virgule et ça ce calcule comme à l'école primaire.

Ken@vo
____________________
Code, Code, Codec !
mardi 30 novembre 2004 à 23:14:48 | Re : arrondir un real

japee

Membre Club Administrateur CodeS-SourceS
Alors, momohbj, ça répond à ta question ?

Le sujet est intéressant, tout n'est pas forcément dit...
J'ai personnellement "planché" là-dessus un petit moment.
J'ai d'autres approches qui pourraient se révéler intéressantes pour nous tous.
Mais si l'intérêt retombe...

Il y a pas mal de possibilités selon ce qu'on veut faire exactement.
Un sujet de source, quoi... mais sûr, sûr !

Kenavo > Merci à toi, je ne connaissais pas IntPower()... très utile à l'usage (ah, math.pas)

Bonne prog', faut pas mollir

N'oubliez pas de valider "Réponse acceptée" si ça vous convient, de toute manière vous ne pouvez pas valider autre chose !

1 2

Cette discussion est classée dans : calcule, real, somme, arrondir, montants


Répondre à ce message

Sujets en rapport avec ce message

Juste un petit prog de calcul [ par Cyanure ] Bonjour, Je veux faire un prog qui fera l'addition entre 3 edit et mettra la somme dans un quatrieme. Je voudrait que les 3 edit soit egal a zero au d Arrondir a la decimal voulu [ par MasterJ ] Salut,Quel est la procedure la plus optimale pour arrondir une variable extended a un nombre de décimale donné.Il s'agit d'argent donc y a t-il une fc QREPORT SOMME [ par w38 ] Quelle est la fonction qui permet de faire la somme d'une expression (QREXPR) ?En fait je souhaiterais la mettre dans une band de type group.MERCI C'e QREPORT SOMME [ par w38 ] Quelle est la fonction qui permet de faire la somme d'une expression (QREXPR) ?En fait je souhaiterais la mettre dans une band de type group.MERCI C'e QREPORT SOMME [ par w38 ] Quelle est la fonction qui permet de faire la somme d'une expression (QREXPR) ?En fait je souhaiterais la mettre dans une band de type group.MERCI C'e QREPORT SOMME [ par w38 ] Quelle est la fonction qui permet de faire la somme d'une expression (QREXPR) ?En fait je souhaiterais la mettre dans une band de type group.MERCI C'e QREPORT SOMME [ par w38 ] Quelle est la fonction qui permet de faire la somme d'une expression (QREXPR) ?En fait je souhaiterais la mettre dans une band de type group.MERCI C'e Protocol RTP (Real Time Protocol) [ par jockos ] Bonjour,Existe t-il un composant Delhi qui permet d'utiliser ce protocole (niveau applicatif, au même titre que HTTP ou FTP) ?Ce protocol sert à faire Type de fonction Array problem [ par ryadus ] Salut,J'ai un probleme lorsque je crée une fonction de type de sortie Array of real par exemple, ça ne marche pas, il ya erreur, je suis obligé de cré arrondir un nombre [ par 980074 ] bête petite question : comment arrondir, en pascal, un nombre entamé vers l'unité supérieure? TRUNC + 1 n'est pas valable pour les nombres entiers...e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,265 sec (4)

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