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

Meilleure réponse
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 08:50
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

Merci madbob 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Meilleure réponse
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:15
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

Merci madbob 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Meilleure réponse
talking 344 Messages postés dimanche 30 novembre 2003Date d'inscription 19 août 2006 Dernière intervention - 25 janv. 2005 à 09:15
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

Merci talking 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 25 janv. 2005 à 10:19
3
Merci
bien plus simple:
Dim N As Integer
N = 1952
N = (N \ 10) * 10
MsgBox N

Daniel

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Meilleure réponse
cqui789 261 Messages postés jeudi 13 janvier 2005Date d'inscription 18 mai 2009 Dernière intervention - 25 janv. 2005 à 10:56
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

Merci cqui789 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 25 janv. 2005 à 11:01
3
Merci
heu oui j'avais pas vu qu'il fallait arrondir !

Daniel

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 08:56
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:33
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:37
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 25 janv. 2005 à 09:39
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
spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 09:43
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
spike62300 73 Messages postés vendredi 5 novembre 2004Date d'inscription 14 septembre 2007 Dernière intervention - 25 janv. 2005 à 09:58
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.