Arrondir à l entier [Résolu]

Messages postés
73
Date d'inscription
vendredi 5 novembre 2004
Dernière intervention
14 septembre 2007
- - Dernière réponse : Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
- 25 janv. 2005 à 11:01
Bonjour a tous,

je suis sous vb.net et je chercher une solution pour arrondir certains calculs que j'execute.
Je souhaite arrondir à l'entier 0, je m'explique:

1952 donne: 1950
13857 donne: 18860

comment faire?

merci d'avance

spike
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Dernière intervention
13 mars 2012
3
Merci
Tu t'écris ta propre fonction ...

soit traitement de chaine de caractère : un string qui récupère le nombre

tu traites le dernier caractère (correspond à un entier)

tu l'évalues

tu surcharge ta string

tu renvois le long


Sinon si t'es plus matheux

Tu peux écrire une fonction récursive avec l'usage de modulo, qui recherche l'unité et qui fait

NBarrondi = nombre - unité et qui te retourne le nouveau nombre



Il n'y a pas de limite à la créativité

Amuses toi bien
madbob

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Dernière intervention
13 mars 2012
3
Merci
Tiens un exemple en vba...




Function PB_CALC(byval P_Nombre as Long)


dim L_New as string


Dim L_Res As Long




'* je récupère le nombre sous forme de chaine inversée - l'unité que je remplace par 0


L_new = 0 & Mid(StrReverse(P_Nombre), 2)




'* je remets la chaine à l'endoit et je l'affecte à un nombre


L_Res = StrReverse(L_new)




'* je renvois la nouvelle valeur


PB_CALC = L_Res






End Sub


madbob

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
344
Date d'inscription
dimanche 30 novembre 2003
Dernière intervention
19 août 2006
3
Merci
Ben ce que tu peux faire c'est faire une fonction qui récupère le dernier chiffre

style
Function arrondir(nombre As String) As Long
DernChiffre = Mid(nombre, Len(nombre))
End Function

Ensuite tu vérifies si le DernChiffre < 5 tu remplaces par 0
exemple si dernier chiffre = 4 alors je le remplace par0
Sinon si le dernier chiffre > 5 ben tu augmentes le nombre des dizaines de 1 par exemple aprés c'est à toi de voir la méthode à traité dans les conditions

PS : je suis à vb6

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
3
Merci
bien plus simple:
Dim N As Integer
N = 1952
N = (N \ 10) * 10
MsgBox N

Daniel

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Dernière intervention
18 mai 2009
3
Merci
Gobillot, c'est etonnant mais la seule reponse qui me semble valable est la seule qui ne soit pas acceptee...



il faudrais quand meme la modifiee un peu



Dim N As Integer

N = 1957

N = ((N + 5) \ 10) * 10 ' ###5 ou plus, donne la dizaine supperieure

MsgBox N

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
3
Merci
heu oui j'avais pas vu qu'il fallait arrondir !

Daniel

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
73
Date d'inscription
vendredi 5 novembre 2004
Dernière intervention
14 septembre 2007
0
Merci
jvois a peu pres ske tu veux dire mais tu n'as pas un exemple pour que je comprenne mieux?

Merci d'avance

spike
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Dernière intervention
13 mars 2012
0
Merci
L'exemple que je t'ai donné sert à exécuter ta question cad arrondir à l'entier 0...




Je souhaite arrondir à l'entier 0, je m'explique:




1952 donne: 1950


13857 donne: 18860






Spike t'es mignon mais si ta question change toutes les 2 minutes tu n'y arrivera pas. D'autre part je ne suis pas une girouette.



Avec l'exemple que je t'ai donné et un poil d'imagination tu peux
absolument arriver à traiter tous les cas de figure... Fait transpirer
un peu tes neurones tu verras c'est pas si dur.



Ce code marche parfaitement sur VB6. (juste faut mettre un end function et non un end sub)




madbob
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Dernière intervention
13 mars 2012
0
Merci
Excuse moi spike j'ai pas vu la greffe sur ton poste le message
précédent s'adresse à talking et est un schouia en dehors du context


madbob
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Dernière intervention
13 mars 2012
0
Merci
Et je suis pas réveillé non plus talking

complètement mad le bob
Tiens un ptit kfé pour me faire pardonné ?
madbob
Messages postés
73
Date d'inscription
vendredi 5 novembre 2004
Dernière intervention
14 septembre 2007
0
Merci
Oui ok merci pour vos deux explications:

celle de talking j'ai compris mais par contre madbob j'ai essayé la tienne sans vraiment comprendre ca marche sauf qu'il faut que je mette:
L_Res=StrReverse(L_new) & 0

Merci encore pour votre aide

spike
Messages postés
73
Date d'inscription
vendredi 5 novembre 2004
Dernière intervention
14 septembre 2007
0
Merci
Nan tinkiet c bon ^^

Jvais faire fonctionner mes neuronnes comme tu dit

spike

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.