Arrondir à l entier [Résolu]

spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 08:02 - Dernière réponse : Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention
- 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

madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 08:50
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:15
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
talking 344 Messages postés dimanche 30 novembre 2003Date d'inscription 19 août 2006 Dernière intervention - 25 janv. 2005 à 09:15
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 25 janv. 2005 à 10:19
+3
Utile
bien plus simple:
Dim N As Integer
N = 1952
N = (N \ 10) * 10
MsgBox N

Daniel
Cette réponse vous a-t-elle aidé ?  
cqui789 261 Messages postés jeudi 13 janvier 2005Date d'inscription 18 mai 2009 Dernière intervention - 25 janv. 2005 à 10:56
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 25 janv. 2005 à 11:01
+3
Utile
heu oui j'avais pas vu qu'il fallait arrondir !

Daniel
Cette réponse vous a-t-elle aidé ?  
spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 08:56
0
Utile
jvois a peu pres ske tu veux dire mais tu n'as pas un exemple pour que je comprenne mieux?

Merci d'avance

spike
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:33
0
Utile
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:37
0
Utile
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:39
0
Utile
Et je suis pas réveillé non plus talking

complètement mad le bob
Tiens un ptit kfé pour me faire pardonné ?
madbob
spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 09:43
0
Utile
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
spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 09:58
0
Utile
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.