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

Erreur dans des calcul de requête (trop précis ?)

2 réponses
Avatar
PR
Bonjour tout le monde !

Une recherche rapide ne m'a pas aidée, car en utilisant des mots clés tels
que "précision" ou "calculs", je ne tombe pas sur ce qu'il me faut !

Donc voilà mon problème :

Quand je fais une requête dans le genre

SELECT champ_A, champ_B, champ_A*champ_B as champ_AB FROM mes_champs;
j'obtient des résultats étonnants !

Par exemple quand j'ai A = 7.5 et B = 1, j'ai un résultat du genre de A*B
(7.5*1) = 7.49999999933213.
Ou quand j'ai A*B = 0.5*8 = 4.000000000000121.

Mes champs sont de type nombre réels. Et les valeur qui sont dedans sont
bien 7.5; 9; 1; 0.5; ... il n'y a pas de "précision cachée" dans mes valeurs
...

Donc pourquoi est-ce que j'obtiens des valeurs bizarres comme résultat du
calcul ?

Si quelqu’un comprend le fin mot de l’histoire, ça me rendrait très heureux !

Merci d’avance,
PR

2 réponses

Avatar
david
salut,

le type du champ A et B sont'il bien des réels DOUBLE...

Car stocker un nombre réel dans un réel simple est très risqué, la
précision est en effet très faible et certaine valeur, même
affichée en 7.50 par exemple, sont en fait 7.4999999...

Sir tu veux stocker des réels avec beacoup de décimales (parfois plus
de 4) utilise des réels double, sinon utilise des monétaires (4
décimales maxi).

A+, david
Avatar
PR
Salut David !

Je te remércie beaucoup pour ta réponse !

J'ai contrôlé mes champs et ils étaient bien en réels simples. Je les ai
passé en double et effectivement les valeurs n'étais pas celles que
j'attendais !

Il ne me reste plus qu'à corrgier les valeurs !

Merci encore,
PR

P.S. Désolé de répondre si tard, mais je viens de constater que depuis
FireFox, les news sont innaccessibles depuis vendredi dernier, alors que sous
IE ça roule nickel !