Pour complèter ce que dit Jean-marc et sans vérification de ma part, Mod fonctionne en VB avec des entiers donc avec transtypage
2 mod 1,4 devient 2 mod 1 soit 0 puisque quel que soit l'entier N, le reste de la division de cet entier par 1 donne 0
7,5 mod 0,5 doit renvoyer une erreur, pas de division par 0 et 10,5 mod 3,5 renverra soit 11 mod 4 (donc 3), soit 10 mod 3 (soit 1) selon le transtypage effectuée. Alors que l'on pourrait s'attendre à 10,5 mod 3,5 = 0 car 10,5=3*3,5+0
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Pierre a écrit :
Merci
"jean-marc" <jean_marc_n2@yahoo.fr.invalid> wrote in message
news:47da6b6f$0$2943$ba620e4c@news.skynet.be...
"Pierre" <pierre@dd.ff> wrote in message
news:urxEDmchIHA.1184@TK2MSFTNGP04.phx.gbl...
Bonjour
Hello,
Je souhaiterais récupérer le reste d'une divison d'un nombre par un
autre.
Mais sans l'arrondi aux entiers de la fonction Mod.
Si je fais 2/1,4 je souhaiterais juste récupérer 0,43.
Oui mais non.
Le reste de la division de 2 par 1,4, ce n'est pas 0,43.
C'est 0, 6.
2 divisé par 1,4 => 1 et reste : 0.6
Par contre, 2/1.4 = 1.4285714...
Si tu veux dire non pas le RESTE mais la PARTIE FRACTIONNAIRE, alors c'est
trivial:
c'est : résultat - la partie entière du résultat, comme suit :
1.4285714 - 1 = 0.4285714
Et si tu veux exactement 0,43:
Round(partie_frac, 2)
Et donc pour tester tout ça:
Dim dividende As Double
Dim diviseur As Double
Dim quotient As Double
Dim reste As Double
Dim partie_frac As Double
Dim result As Double
Pour complèter ce que dit Jean-marc et sans vérification de ma part, Mod
fonctionne en VB avec des entiers donc avec transtypage
2 mod 1,4 devient 2 mod 1 soit 0 puisque quel que soit l'entier N, le
reste de la division de cet entier par 1 donne 0
7,5 mod 0,5 doit renvoyer une erreur, pas de division par 0 et
10,5 mod 3,5 renverra soit 11 mod 4 (donc 3), soit 10 mod 3 (soit 1)
selon le transtypage effectuée.
Alors que l'on pourrait s'attendre à 10,5 mod 3,5 = 0 car 10,5=3*3,5+0
On pourrait définir un modulo en nombres réels (positifs à priori puis
étendu aux nombres positifs et négatifs) par
x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est
archimédien.
Pour complèter ce que dit Jean-marc et sans vérification de ma part, Mod fonctionne en VB avec des entiers donc avec transtypage
2 mod 1,4 devient 2 mod 1 soit 0 puisque quel que soit l'entier N, le reste de la division de cet entier par 1 donne 0
7,5 mod 0,5 doit renvoyer une erreur, pas de division par 0 et 10,5 mod 3,5 renverra soit 11 mod 4 (donc 3), soit 10 mod 3 (soit 1) selon le transtypage effectuée. Alors que l'on pourrait s'attendre à 10,5 mod 3,5 = 0 car 10,5=3*3,5+0
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Fred
Dans : news:%, Patrice Henrio disait :
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Cela signifie-t-il que tout réel plongé dans une baignoire en ressort mouillé ? :-)
-- Fred
Dans : news:%23wrO2PdhIHA.5204@TK2MSFTNGP02.phx.gbl,
Patrice Henrio disait :
On pourrait définir un modulo en nombres réels (positifs à priori puis
étendu aux nombres positifs et négatifs) par
x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est
archimédien.
Cela signifie-t-il que tout réel plongé dans une baignoire en ressort
mouillé ? :-)
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Cela signifie-t-il que tout réel plongé dans une baignoire en ressort mouillé ? :-)
-- Fred
jean-marc
"Patrice Henrio" wrote in message news:%
Pour complèter ce que dit Jean-marc et sans vérification de ma part, Mod fonctionne en VB avec des entiers donc avec transtypage
2 mod 1,4 devient 2 mod 1 soit 0 puisque quel que soit l'entier N, le reste de la division de cet entier par 1 donne 0
Oui:
? 2 mod 1.4 0
7,5 mod 0,5 doit renvoyer une erreur, pas de division par 0
Oui :
? 7.5 mod 0.5 ==========> Division par zéro
10,5 mod 3,5 renverra soit 11 mod 4 (donc 3), soit 10 mod 3 (soit 1) selon le transtypage effectuée. Alors que l'on pourrait s'attendre à 10,5 mod 3,5 = 0 car 10,5=3*3,5+0
Non :-)
? 10.5 mod 3.5 2
Et en fait, ici le résultat "2" ne me choque pas plus que ne me choquerait "3" ou "1" ou "0" ou même "42" ou "666".
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Même si l'intérêt est douteux :-)
En fait, il est plus sage de se référer à la doc, qui dit précisément la chose suivante :
Remarks
The modulus, or remainder, operator divides number1 by number2 (rounding floating-point numbers to integers) and returns only the remainder as result. For example, in the following expression, A (result) equals 5.
A = 19 Mod 6.7
Usually, the data type of result is a Byte, Byte variant, Integer, Integer variant, Long, or Variant containing a Long, regardless of whether or not result is a whole number. Any fractional portion is truncated. However, if any expression is Null, result is Null. Any expression that is Empty is treated as 0.
Ceci dit, la réponse tombe à l'eau dans la mesure ou l'OP se trompe dans la dénomination de ce qu'il veut faire: Il s'intéresse à la partie fractionnaire du résultat et pas au "reste de la division".
-- Jean-Marc
"Patrice Henrio" <patrice.henrio@laposte.net> wrote in message
news:%23wrO2PdhIHA.5204@TK2MSFTNGP02.phx.gbl...
Pour complèter ce que dit Jean-marc et sans vérification de ma part, Mod
fonctionne en VB avec des entiers donc avec transtypage
2 mod 1,4 devient 2 mod 1 soit 0 puisque quel que soit l'entier N, le
reste de la division de cet entier par 1 donne 0
Oui:
? 2 mod 1.4
0
7,5 mod 0,5 doit renvoyer une erreur, pas de division par 0
Oui :
? 7.5 mod 0.5
==========> Division par zéro
10,5 mod 3,5 renverra soit 11 mod 4 (donc 3), soit 10 mod 3 (soit 1) selon
le transtypage effectuée.
Alors que l'on pourrait s'attendre à 10,5 mod 3,5 = 0 car 10,5=3*3,5+0
Non :-)
? 10.5 mod 3.5
2
Et en fait, ici le résultat "2" ne me choque pas plus que
ne me choquerait "3" ou "1" ou "0" ou même "42" ou "666".
On pourrait définir un modulo en nombres réels (positifs à priori puis
étendu aux nombres positifs et négatifs) par
x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est
archimédien.
Même si l'intérêt est douteux :-)
En fait, il est plus sage de se référer à la doc,
qui dit précisément la chose suivante :
Remarks
The modulus, or remainder, operator divides number1 by number2 (rounding
floating-point numbers to integers) and returns only the remainder as
result. For example, in the following expression, A (result) equals 5.
A = 19 Mod 6.7
Usually, the data type of result is a Byte, Byte variant, Integer, Integer
variant, Long, or Variant containing a Long, regardless of whether or not
result is a whole number. Any fractional portion is truncated. However, if
any expression is Null, result is Null. Any expression that is Empty is
treated as 0.
Ceci dit, la réponse tombe à l'eau dans la mesure ou l'OP
se trompe dans la dénomination de ce qu'il veut faire:
Il s'intéresse à la partie fractionnaire du résultat et pas
au "reste de la division".
Pour complèter ce que dit Jean-marc et sans vérification de ma part, Mod fonctionne en VB avec des entiers donc avec transtypage
2 mod 1,4 devient 2 mod 1 soit 0 puisque quel que soit l'entier N, le reste de la division de cet entier par 1 donne 0
Oui:
? 2 mod 1.4 0
7,5 mod 0,5 doit renvoyer une erreur, pas de division par 0
Oui :
? 7.5 mod 0.5 ==========> Division par zéro
10,5 mod 3,5 renverra soit 11 mod 4 (donc 3), soit 10 mod 3 (soit 1) selon le transtypage effectuée. Alors que l'on pourrait s'attendre à 10,5 mod 3,5 = 0 car 10,5=3*3,5+0
Non :-)
? 10.5 mod 3.5 2
Et en fait, ici le résultat "2" ne me choque pas plus que ne me choquerait "3" ou "1" ou "0" ou même "42" ou "666".
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Même si l'intérêt est douteux :-)
En fait, il est plus sage de se référer à la doc, qui dit précisément la chose suivante :
Remarks
The modulus, or remainder, operator divides number1 by number2 (rounding floating-point numbers to integers) and returns only the remainder as result. For example, in the following expression, A (result) equals 5.
A = 19 Mod 6.7
Usually, the data type of result is a Byte, Byte variant, Integer, Integer variant, Long, or Variant containing a Long, regardless of whether or not result is a whole number. Any fractional portion is truncated. However, if any expression is Null, result is Null. Any expression that is Empty is treated as 0.
Ceci dit, la réponse tombe à l'eau dans la mesure ou l'OP se trompe dans la dénomination de ce qu'il veut faire: Il s'intéresse à la partie fractionnaire du résultat et pas au "reste de la division".
-- Jean-Marc
Patrice Henrio
>
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Même si l'intérêt est douteux :-)
En fait cette définition a un intérêt pour tous les calculs d'optimisation de plusieurs opérations (papiers peints, consommation ...) Mais il est vrai que dans le cas présent ce n'est pas ce que souhaitais le questionneur. Je répondais surtout sur le point du transtypage que tu n'avais pas abordé et qui expliquait le 0 du demandeur et j'en ai profité pour faire mon intéressant ...
A plus.
>
On pourrait définir un modulo en nombres réels (positifs à priori puis
étendu aux nombres positifs et négatifs) par
x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est
archimédien.
Même si l'intérêt est douteux :-)
En fait cette définition a un intérêt pour tous les calculs
d'optimisation de plusieurs opérations (papiers peints, consommation ...)
Mais il est vrai que dans le cas présent ce n'est pas ce que souhaitais
le questionneur. Je répondais surtout sur le point du transtypage que tu
n'avais pas abordé et qui expliquait le 0 du demandeur et j'en ai
profité pour faire mon intéressant ...
On pourrait définir un modulo en nombres réels (positifs à priori puis étendu aux nombres positifs et négatifs) par x mod y = z ssi x=n*y+z avec n entier et 0<=z<y
Cette définition est correcte du fait que l'ensemble des réels est archimédien.
Même si l'intérêt est douteux :-)
En fait cette définition a un intérêt pour tous les calculs d'optimisation de plusieurs opérations (papiers peints, consommation ...) Mais il est vrai que dans le cas présent ce n'est pas ce que souhaitais le questionneur. Je répondais surtout sur le point du transtypage que tu n'avais pas abordé et qui expliquait le 0 du demandeur et j'en ai profité pour faire mon intéressant ...
A plus.
Fran
On 3æ14æ¥, åå¾2:41, "jean-marc" <jean_marc...@ yahoo.fr.invalid> wrote:
Il est d'ailleurs à remarquer que le transtypage/arrondi dont il est question fonctionne en réalité comme round ou même cint (http:// faq.vb.free.fr/index.php?question8). Donc, pour en revenir à ce qu'indiquait Patrice, 1.5 mod 3.5 = 10 mod 4 = (10 - 2 * 4) = 2 = (?=~ 42).
Et donc bienvenu dans le monde merveilleux de l'arrondi bancaire encore nommé arrondi au prochain entier pair :-)
Dans ce mode, on a de fait: 2 ~= 42 , pour peu que l'on ne lise pas la doc en détail !!
-- Jean-Marc
"François Picalausa" <fpicalausa@gmail.com> wrote in message
news:ece6c696-8dc4-44be-928f-e3612a9335a3@d21g2000prf.googlegroups.com...
Hello,
Il est d'ailleurs à remarquer que le transtypage/arrondi dont il est
question fonctionne en réalité comme round ou même cint (http://
faq.vb.free.fr/index.php?question8).
Donc, pour en revenir à ce qu'indiquait Patrice, 1.5 mod 3.5 = 10 mod
4 = (10 - 2 * 4) = 2 = (?=~ 42).
Et donc bienvenu dans le monde merveilleux de l'arrondi bancaire
encore nommé arrondi au prochain entier pair :-)
Dans ce mode, on a de fait: 2 ~= 42 , pour peu que l'on ne lise pas
la doc en détail !!
Il est d'ailleurs à remarquer que le transtypage/arrondi dont il est question fonctionne en réalité comme round ou même cint (http:// faq.vb.free.fr/index.php?question8). Donc, pour en revenir à ce qu'indiquait Patrice, 1.5 mod 3.5 = 10 mod 4 = (10 - 2 * 4) = 2 = (?=~ 42).
Et donc bienvenu dans le monde merveilleux de l'arrondi bancaire encore nommé arrondi au prochain entier pair :-)
Dans ce mode, on a de fait: 2 ~= 42 , pour peu que l'on ne lise pas la doc en détail !!