arrondir un résultat

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

arrondir un résultat

Message par blendman »

salut

voilà pour une petite application, j'ai besoin de faire des arrondis. J'ai les paramètres suivants :
- précision : nombre de chiffres après la virgule
- arrondi : pour arrondir.

Par exemple, si j'obtiens 0.015 et que j'ai 2 chiffres après la virgule, je voudrais avoir 0.02

Vous savez comment je peux faire pour obtenir les bons chiffres ?

Merci :)
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: arrondir un résultat

Message par JohnJohnsonSHERMAN »

Tu peux utiliser StrF() qui permet de prendre un nombre voulu de décimales

Code : Tout sélectionner

Debug StrF(3.141596,2)
Par contre si tu veux un nombre (à récupérer avec ValF() depuis cet exemple), tu auras à nouveau tout un tas de décimales, ceci étant du à la méthode assez "approximative" utilisée pour représenter les nombres flottants...
Mais si tu veux simplement ne pas spammer l'utilisateur de décimales, la premiére méthode suffit :)
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: arrondir un résultat

Message par kernadec »

Slt
La fonction round () :wink:
Cordialement

Code : Tout sélectionner

decimale.i=10000

a.d = Round((1.123456*decimale),#PB_Round_Nearest)/decimale
b.d = Round((1.123456*decimale),#PB_Round_Down)/decimale
c.d = Round((1.123456*decimale),#PB_Round_Up)/decimale

Debug StrD(a,4)
Debug StrD(b,4)
Debug StrD(c,4)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: arrondir un résultat

Message par blendman »

salut

C'est ce que j'utilise (round() et strD()) ;)

Le plus galère a été de trouver la méthode pour utiliser le nombre de décimale, mais comme je laisse le choix à l'utiliser, finalement, je le connais à l'avance ^^.

Merci ;)
Répondre