Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb avec des champs de type float

2 réponses
Avatar
Christophe KERHOUSSE
Bonjour, j'ai le pb suivant :

J'ai une table avec des champs de type float.
Lorsque je fais "Ouvrir une table -> Renvoyer le début" dans entreprise
manager, je récupère bien la valeur de ces champs.
Pax exemple :12,3

PAR CONTRE, dans l'analyseur de requête, pour la même ligne (ok dans
entreprise manager) j'obtiens 12,300000000000004 ?????
Qu'est-ce que c'est que ce bazar ???

Par mon appli IIS/ASP, tout fonctionne bien aussi pour restituer les champs
float...

Vue que je suis en train de créer des fonctions et procédures stockées et
j'utilise l'Analyseur de requête pour les développer/tester je suis
carrément bloqué !!

au secours ?

Quelqu'un a t-il eu le soucis ???

Merci d'avance

2 réponses

Avatar
Michel Walsh
Salut,


Un nombre à virgule flottante est approximatif. Tout comme on ne
peut pas écrire exactement un tiers, en base 10, avec un nombre FINI de
chiffres, et bien, en base deux, il en est de même avec la majorité des cas
des nombres qui ne sont pas des sommes entières de base 2 (0.5, 0.25,
0.125, ... ou leur somme). La représentation interne, en base 2, diffère
donc éventuellement de celle en base 10, lorsqu'on a une portion
fractionnaire.

Utiliser un type décimal (qui est un entier avec un décallage du
point décimal) si on désire minimiser les pertes de précision, internement,
par rapport à la représentation (décimale) du nombre en base 10.



Espérant être utile,
Vanderghast, Access MVP



"Christophe KERHOUSSE" <redtech(supprimer çà)@free.fr> wrote in message
news:
Bonjour, j'ai le pb suivant :

J'ai une table avec des champs de type float.
Lorsque je fais "Ouvrir une table -> Renvoyer le début" dans entreprise
manager, je récupère bien la valeur de ces champs.
Pax exemple :12,3

PAR CONTRE, dans l'analyseur de requête, pour la même ligne (ok dans
entreprise manager) j'obtiens 12,300000000000004 ?????
Qu'est-ce que c'est que ce bazar ???

Par mon appli IIS/ASP, tout fonctionne bien aussi pour restituer les


champs
float...

Vue que je suis en train de créer des fonctions et procédures stockées et
j'utilise l'Analyseur de requête pour les développer/tester je suis
carrément bloqué !!

au secours ?

Quelqu'un a t-il eu le soucis ???

Merci d'avance




Avatar
Fred BROUARD
Les calculs au sein d'un ordinateurs sont, du fait de la conception
binaire, exécuté en base 2. Or pour les chiffres après la virgule, il
n'existe aucune correspondance systématique de précision. En effet 0.2
(décimal) s'exprime, en base 2, à l'aide d'une suite infinie de
puissance inverses de 2. Lors de la récupération de cette information
l'affichage be fait que confirmer cet état de fait.
Si l'on veut conserver exactement la précision décimale (par exemple
pour des informations comptable) il faut utiliser un décimal codé
binaire, c'est à dire le type SQL DECIMAL par exemple. L'inconvénient
est que le SGBDR effectue une conversion en binaire avant tout calcul.

A +



Christophe KERHOUSSE a écrit:
Bonjour, j'ai le pb suivant :

J'ai une table avec des champs de type float.
Lorsque je fais "Ouvrir une table -> Renvoyer le début" dans entreprise
manager, je récupère bien la valeur de ces champs.
Pax exemple :12,3

PAR CONTRE, dans l'analyseur de requête, pour la même ligne (ok dans
entreprise manager) j'obtiens 12,300000000000004 ?????
Qu'est-ce que c'est que ce bazar ???

Par mon appli IIS/ASP, tout fonctionne bien aussi pour restituer les champs
float...

Vue que je suis en train de créer des fonctions et procédures stockées et
j'utilise l'Analyseur de requête pour les développer/tester je suis
carrément bloqué !!

au secours ?

Quelqu'un a t-il eu le soucis ???

Merci d'avance





--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************