Arrondi

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

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 févr. 2005 à 13:26
cint(12.86) et cint(12.49)
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
4 févr. 2005 à 15:20
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 févr. 2005 à 15:58
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().
0
cs_papachef Messages postés 7 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 19 novembre 2006
4 févr. 2005 à 19:06
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Logicson Messages postés 8 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 4 février 2005
4 févr. 2005 à 19:50
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
0