OVH Cloud OVH Cloud

Question toute simple ....

12 réponses
Avatar
Dom
Bonjour,

Je cherche à récupérer le reste d'une division. Comment faire ?
100/3 = 33.33333. Je veux récupérer 0.3333333
Tout bête non ???
Et ben je sèche ...
Une âme charitable ?
Merci

Dom

10 réponses

1 2
Avatar
Zoury
Salut! :O)

utilise Mod.

ex :
'***
Debug.Print 5 Mod 3 ' reste 2
***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Dom" a écrit dans le message de
news:%
Bonjour,

Je cherche à récupérer le reste d'une division. Comment faire ?
100/3 = 33.33333. Je veux récupérer 0.3333333
Tout bête non ???
Et ben je sèche ...
Une âme charitable ?
Merci

Dom




Avatar
Patrice Henrio
Function reste(A as integer,B as integer) as single
Reste=A-B*(A/B)
End function
A/B est la division entière de A par B

ou encore

Function reste(A,B) as single
Reste=A/B-Int(A/B)
End Function

Dasn le deuxième cas, cela marche pour tous nombres A et B (avec B non nul
bien sûr)
"Dom" a écrit dans le message de
news:%
Bonjour,

Je cherche à récupérer le reste d'une division. Comment faire ?
100/3 = 33.33333. Je veux récupérer 0.3333333
Tout bête non ???
Et ben je sèche ...
Une âme charitable ?
Merci

Dom




Avatar
Patrice Henrio
J'ai fait la même erreur que Zoury danas ma première fonction reste qui
n'est rien d'autre que mod. Pour obtenir la partie décimale d'un nombre réel
il faut utiliser la deuxième fonction.

Comme quoi les réflexes l'emportent sur la réflexion.

"Patrice Henrio" a écrit dans le
message de news:
Function reste(A as integer,B as integer) as single
Reste=A-B*(A/B)
End function
A/B est la division entière de A par B

ou encore

Function reste(A,B) as single
Reste=A/B-Int(A/B)
End Function

Dasn le deuxième cas, cela marche pour tous nombres A et B (avec B non nul
bien sûr)
"Dom" a écrit dans le message de
news:%
> Bonjour,
>
> Je cherche à récupérer le reste d'une division. Comment faire ?
> 100/3 = 33.33333. Je veux récupérer 0.3333333
> Tout bête non ???
> Et ben je sèche ...
> Une âme charitable ?
> Merci
>
> Dom
>
>




Avatar
Zoury
exact.. c'est en lisant tes messages que je me suis rendu compte que je
n'avais pas du tout la bonne solution :OD

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

"Patrice Henrio" a écrit dans le
message de news:%
J'ai fait la même erreur que Zoury danas ma première fonction reste qui
n'est rien d'autre que mod. Pour obtenir la partie décimale d'un nombre


réel
il faut utiliser la deuxième fonction.

Comme quoi les réflexes l'emportent sur la réflexion.

"Patrice Henrio" a écrit dans le
message de news:
> Function reste(A as integer,B as integer) as single
> Reste=A-B*(A/B)
> End function
> A/B est la division entière de A par B
>
> ou encore
>
> Function reste(A,B) as single
> Reste=A/B-Int(A/B)
> End Function
>
> Dasn le deuxième cas, cela marche pour tous nombres A et B (avec B non


nul
> bien sûr)
> "Dom" a écrit dans le message de
> news:%
> > Bonjour,
> >
> > Je cherche à récupérer le reste d'une division. Comment faire ?
> > 100/3 = 33.33333. Je veux récupérer 0.3333333
> > Tout bête non ???
> > Et ben je sèche ...
> > Une âme charitable ?
> > Merci
> >
> > Dom
> >
> >
>
>




Avatar
Zoury
oublie ça, regarde les messages de patrice.
Avatar
Dom
Sans vouloir abuser:
et si je souhaite récupérer la partie entière de ma division ?

Encore merci
Avatar
Pierre Alexis [MVP]
Salut Zoury,

Tu as écrit :

exact.. c'est en lisant tes messages que je me suis rendu compte que je
n'avais pas du tout la bonne solution :OD



Pour votre défense, la question était mal posée ;-) Ce n'est pas le reste que
Dom voulait mais la partie décimale ;-)

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
Avatar
Zoury
il existe Int() et Fix() qui renvoit la partie entière d'un nombre.. leur
différence se situe au niveau des nombres négatifs.. :

ex :
'***
Debug.Print Int(7 / 3) ' 2
Debug.Print Fix(7 / 3) ' 2
Debug.Print Int(-7 / 3) ' -3, renvoit le premièr nombre négatif plus
petit que ou égal à
Debug.Print Fix(-7 / 3) ' -2, renvoit le premièr nombre négatif plus
grand que ou égal à
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Dom" a écrit dans le message de
news:%
Sans vouloir abuser:
et si je souhaite récupérer la partie entière de ma division ?

Encore merci




Avatar
Eric
"Dom" écrivait news:#sARizOaEHA.1152
@TK2MSFTNGP09.phx.gbl:

Sans vouloir abuser:
et si je souhaite récupérer la partie entière de ma division ?

Encore merci






Bonjour,

Puisqu'on parle de division entière ...

Function Reste(a As Single, b As Single) As Single
If b = 0 Then Exit Function
Reste = a / b - (a b) ' division entière
End Function

Function PartieEntiere(a As Single, b As Single) As Long
If b = 0 Then Exit Function
PartieEntiere = a / b - Reste(a, b)
End Function

A+
Eric
Avatar
Eric
re,

ou plus simplement pour la partie entière :

Function pe(a As Single, b As Single) As Long
if b=0 then exit Function
pe = a b
End Function

Eric


Eric écrivait

Bonjour,

Puisqu'on parle de division entière ...

Function Reste(a As Single, b As Single) As Single
If b = 0 Then Exit Function
Reste = a / b - (a b) ' division entière
End Function

Function PartieEntiere(a As Single, b As Single) As Long
If b = 0 Then Exit Function
PartieEntiere = a / b - Reste(a, b)
End Function

A+
Eric



1 2