Arrondi

Signaler
Messages postés
7
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
19 novembre 2006
-
Messages postés
8
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
4 février 2005
-
Comment faire un arrondi sur un nombre? par exemple 12,86 = 13 ou 12,49 = 12 Merci

5 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
cint(12.86) et cint(12.49)
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Casy < Attention car en conversion vers in Int, tu risques l'overflow !!
Pour arrondir, mieux vaut utiliser les fonctions Int() et/ou Fix()

Pour la différence en tre Int() et Fix(), ci-dessous un extrait de MSDN

Différence entre les fonctions Int et Fix : si number est négatif, Int renvoie le premier entier négatif inférieur ou égal à number, alors que Fix renvoie le premier entier négatif supérieur ou égal à number. Par exemple, Int convertit -8,4 en -9 et Fix convertit -8,4 en -8.

Christophe R
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Je suis d'accord avec toi Christophe mais je n'aime vraiment pas
les fonctions Int et Fix car si ton exemple est juste essaye avec
Int(8.6) et Fix(8.6) tu verras qu'elles te renvoient toutes les deux 8
au lieu de 9. Je prefère encore utiliser Cint() et Clng() qui elles
renvoient l'arrondi juste. Tu vas quand même jusqu'à +-2147483647 avec
Clng().
Messages postés
7
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
19 novembre 2006

Le code ci-dessous me renvoie "erreur de compilation attendu: identificateur"
Pourquoi ?

Private Sub Text7_Change()
Dim c, f As Integer


If Text7.Text <> "" Then
txtCDB.Text = Text7.Text * 2.204622
Text7.SetFocus


Cint (txtCDB.Text)


End If
End Sub
Messages postés
8
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
4 février 2005

Premièrement, la fonction pour arrondir (Celle que t'apprends à l'école primaire), c'est
Round(Number)

Round(2.46) donne 2
Round(3.87) donne 4
Round(-5.76) donne -6
_____

De plus, CInt c'est une fonction, ce qui veut dire qu'ell retourne une valeur. (C'est pour ça que t'a une erreur)

Finallement, tu dois tout d'abord convertir la valeur TEXTE en valeur numérique par la fonction Val(String).

Dim Nombre as Single
If Text7.Text <> "" Then
txtCDB.Text = Text7.Text * 2.204622
Text7.SetFocus

Nombre = Val(Text7.Text) ' Converti la valeur texte en valeur numérique
Nombre = Round(Nombre) ' Arrondi le Nombre
Text7.Text = CStr(Nombre) 'Convertit la valeur numérique en valeur texte

End If

Ça devrait faire l'affaire

The secret to creativity is knowing how to hide your sources - Einsetein