PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → GESTION DES DECIMALES
GESTION DES DECIMALES
Started by pmenard, Sep., 14 2004 1:01 PM - 8 replies
Posted on September, 14 2004 - 1:01 PM
LE PROBLEME :

UN AUGMENTATION DE BAREME PAR EXEMPLE de 1.0095

UN CHAMPS TAUX AU FOMAT MONETAIRE = 165.77€ * 1.0095 = 167,344815

windev enregistre ce nombre

1/ JE VOUDRAI ENREGISTRER 167.34 (JE NE VEUX PAS D'ARRONDI) MAIS C'EST IMPOSSIBLE

2/ EST IL IMPOSSIBLE DE FIXER LE NOMBRE DE DECIMALE A DEUX (PAS SEULEMENT A L'AFFICHAGE) ?

3/ JE VOUDRAIS OBTENIR 167.34 * 3 = 502,02

*****************************************************************
J'OBTIENS 167.344815 * 3 = 502,034445 FAUX 1 CENTIME D'EURO EN PLUS
JE VOUDRAI 167.34 * 3 = 502.02 JUSTE
*****************************************************************

QUE FAIRE ??????
Posted on September, 14 2004 - 1:12 PM
MENARD PATRICK vient de nous annoncer :

LE PROBLEME :

UN AUGMENTATION DE BAREME PAR EXEMPLE de 1.0095

UN CHAMPS TAUX AU FOMAT MONETAIRE = 165.77¤ * 1.0095 = 167,344815

windev enregistre ce nombre

1/ JE VOUDRAI ENREGISTRER 167.34 (JE NE VEUX PAS D'ARRONDI) MAIS C'EST IMPOSSIBLE

2/ EST IL IMPOSSIBLE DE FIXER LE NOMBRE DE DECIMALE A DEUX (PAS SEULEMENT A L'AFFICHAGE) ?

3/ JE VOUDRAIS OBTENIR 167.34 * 3 = 502,02

*****************************************************************
J'OBTIENS 167.344815 * 3 = 502,034445 FAUX 1 CENTIME D'EURO EN PLUS
JE VOUDRAI 167.34 * 3 = 502.02 JUSTE
*****************************************************************

QUE FAIRE ??????

Bonjour,
il suffit de faire:
arrondi(165.77¤ * 1.0095 ,2)
bonne journée

--
Pascal Ferracci
efpé

efpe@efpe.biz
Posted on September, 14 2004 - 1:22 PM
Dans un message Pascal F disait :

MENARD PATRICK vient de nous annoncer :



*****************************************************************
J'OBTIENS 167.344815 * 3 = 502,034445 FAUX 1 CENTIME D'EURO
EN PLUS
JE VOUDRAI 167.34 * 3 = 502.02 JUSTE
*****************************************************************

QUE FAIRE ??????
Bonjour,

il suffit de faire:
arrondi(165.77¤ * 1.0095 ,2)
bonne journée



ou encore utilisez le type monétaire ?

HTH
--
Michel Herrscher Consultant
Posted on September, 14 2004 - 1:30 PM
Il faut essayer ceci :

MonNombre est un réel
Résultat est un réel
MonNombre7.344815
Résultat = Val(NumériqueVersChaine(MonNombre, ".2f"))*3



Info(Résultat)

voilà ....

Cordialement.

Jean Philippe.
Posted on September, 14 2004 - 1:33 PM
Bonjour,

En utilisant mon ardoise magique (voir plus bas), je teste :

Description_de_l_erreur = 167.344815 * 3
Description_de_l_erreur += cr + (PartieEntière(100 * 167.344815) /100 * 3)

avec pour résultat :

502.034445
502.02

Extrait de mon programme perso Windev 'Dictionnaire des difficultés Windev" :

Une ardoise magique a pour vocation d'utiliser la fonction Compile pour faciliter les mises au point de programmes, sans sortir de l'exécutable. Elle transforme un texte en code, et l'exécute. On gagnera ainsi un temps considérable en évitant les aller-retour entre la phase de développement et la phase de test. Une fois le résultat obtenu, il suffit de copier-coller le code et de l'insérer dans le programme, ou encore de constituer des bibliothèques de code sous forme de fichiers texte, appelables à la demande.

Une ardoise magique se compose de :

- une zone de saisie du code à tester baptisée Code_à_tester
- une zone de réception du résultat baptisée Description_de_l_erreur parce qu'elle est supposée afficher les erreurs en phase de mise au point.
- un ou plusieurs boutons contenant du code répétitif à paramétrer.
Posted on September, 14 2004 - 4:52 PM
Je ne sai pas si c'est la bonne solution, mais ca va marcher
si t'as une valeur (ex 16,3442), tu peux y faire un traitement:
Converser la vers une chaine
faire une boucle pour ne prendre que 2 chiffres apres la virgule
reconverser vers reel
puis termine ton traitement
a++
Posted on September, 15 2004 - 1:38 AM
De mon côté, je conseillerais l'utilisation d'un entier
//DEBUT CODE
iTemp est un entier = 165.77 * 1.0095 * 100//Multiplication par 100 pour aller chercher deux décimales
mResultat est un monétaire = iTemp / 100//À partir de ce moment mResultat vaut 167.34
mResultat = mResultat*3 // mResultat = 502.02 JUSTE
//FIN CODE

Mathieu
Posted on September, 15 2004 - 1:38 PM
Je ne veux pas arrondir mais utilisé deux décimales

exemple 1.33999999 = 1.33 non pas 1.34
Posted on September, 15 2004 - 7:15 PM
Le 15 septembre 2004 à 12:38, Patrick Ménard nous disait :

Je ne veux pas arrondir mais utilisé deux décimales

exemple 1.33999999 = 1.33 non pas 1.34


Multipliez par 100, prenez la partie entière et divisez par 100.

--
Cordialement