OVH Cloud OVH Cloud

la partie décimale disparaît

2 réponses
Avatar
pguiheu
Bonjour,

Je viens de d=E9couvrir quelque chose de curieux, que vous pouvez
tester...

Dans une table "Table1", deux champs num=E9riques "nb1" et "nb2" avec
taille de champ "d=E9cimal".
Une requ=EAte "Requ=EAte1" =E0 partir de cette table, dans laquelle je
mets les deux champs, et un champ calcul=E9 "Expr1" pour faire nb1/nb2.
Jusque l=E0, tout va bien. Exemple : nb1 =3D 1, nb2 =3D3, Expr1 donne
0,333333...
Si je retourne en mode cr=E9ation de la requ=EAte et que j'active la
ligne "op=E9ration" en cliquant sur le bouton sigma, j'ai l'op=E9ration
par d=E9faut "regroupement" pour chacun des champs. Sans rien changer
d'autre, juste en ex=E9cutant la requ=EAte, Expr1 devient 0.
Je pr=E9cise que le ph=E9nom=E8ne se produit quelles que soient les
valeurs : la partie d=E9cimale dispara=EEt, et si on force dans la
requ=EAte pour avoir 15 d=E9cimales on a 15 z=E9ros !!

La m=EAme proc=E9dure, mais avec une propri=E9t=E9 taille de champ d=E9finie
sur "Entier long" dans une Table2, par exemple, ne provoque pas
l'erreur : Expr1 reste inchang=E9, avec ou sans la ligne "op=E9ration".

Quelqu'un aurait-il une explication =E0 cette =E9tranget=E9 ? S'agirait-il
d'un bug ??

J'avoue que je s=E8che...
Merci d'avance pour vos lumi=E8res !

Patrick

2 réponses

Avatar
ze Titi
Bonjour pguiheu

L'opération de regroupement n'est pas bonne puisque tu effectues une
opération.
Essaie de changer Regroupement en Expression.


Dans ton message
Bonjour,

Je viens de découvrir quelque chose de curieux, que vous pouvez
tester...

Dans une table "Table1", deux champs numériques "nb1" et "nb2" avec
taille de champ "décimal".
Une requête "Requête1" à partir de cette table, dans laquelle je
mets les deux champs, et un champ calculé "Expr1" pour faire nb1/nb2.
Jusque là, tout va bien. Exemple : nb1 = 1, nb2 =3, Expr1 donne
0,333333...
Si je retourne en mode création de la requête et que j'active la
ligne "opération" en cliquant sur le bouton sigma, j'ai l'opération
par défaut "regroupement" pour chacun des champs. Sans rien changer
d'autre, juste en exécutant la requête, Expr1 devient 0.
Je précise que le phénomène se produit quelles que soient les
valeurs : la partie décimale disparaît, et si on force dans la
requête pour avoir 15 décimales on a 15 zéros !!

La même procédure, mais avec une propriété taille de champ définie
sur "Entier long" dans une Table2, par exemple, ne provoque pas
l'erreur : Expr1 reste inchangé, avec ou sans la ligne "opération".

Quelqu'un aurait-il une explication à cette étrangeté ? S'agirait-il
d'un bug ??

J'avoue que je sèche...
Merci d'avance pour vos lumières !

Patrick


--
Voilou !
Cordialement,

Ze Titi

Avatar
pguiheu
Merci de ta réponse, ze Titi. J'avais déjà noté, en effet, qu'en
passant en expression ça fonctionnait, mais ça ne m'explique pas
pourquoi ce "phénomène" ne se produit pas avec d'autres choix pour la
propriété "taille de champ". L'opération de regroupement ne fait pas
disparaître la partie décimale quand on choisit "entier long" ou
"réel simple" par exemple.

Au passage, d'ailleurs, selon la taille de champ choisie au départ
dans la table, les mêmes calculs avec les mêmes valeurs ne donnent
pas le même résultat, c'est quand même un peu préoccupant...

Bon, cela dit, ça va pas déclencher une guerre des étoiles, mon
petit problème... Mais j'aime bien comprendre, quand c'est possible,
ou alors s'il n'y a rien à comprendre, j'aime bien le savoir, comme
ça j'arrête de me poser la question !

Bonjour pguiheu

L'opération de regroupement n'est pas bonne puisque tu effectues une
opération.
Essaie de changer Regroupement en Expression.


Dans ton message
Bonjour,

Je viens de découvrir quelque chose de curieux, que vous pouvez
tester...

Dans une table "Table1", deux champs numériques "nb1" et "nb2" avec
taille de champ "décimal".
Une requête "Requête1" à partir de cette table, dans laquelle je
mets les deux champs, et un champ calculé "Expr1" pour faire nb1/nb2.
Jusque là, tout va bien. Exemple : nb1 = 1, nb2 =3, Expr1 donne
0,333333...
Si je retourne en mode création de la requête et que j'active la
ligne "opération" en cliquant sur le bouton sigma, j'ai l'opération
par défaut "regroupement" pour chacun des champs. Sans rien changer
d'autre, juste en exécutant la requête, Expr1 devient 0.
Je précise que le phénomène se produit quelles que soient les
valeurs : la partie décimale disparaît, et si on force dans la
requête pour avoir 15 décimales on a 15 zéros !!

La même procédure, mais avec une propriété taille de champ dé finie
sur "Entier long" dans une Table2, par exemple, ne provoque pas
l'erreur : Expr1 reste inchangé, avec ou sans la ligne "opération".

Quelqu'un aurait-il une explication à cette étrangeté ? S'agirait -il
d'un bug ??

J'avoue que je sèche...
Merci d'avance pour vos lumières !

Patrick


--
Voilou !
Cordialement,

Ze Titi