Bonjour,

En interrogeant ma base MS-SQL avec l'outil Microsoft "Analyseur de requête"

select top 1 Valeur1
from MaTable

donne le résultat : 134.543277 (c'est la valeur exacte stockée dans le champ Valeur1 de MaTable)


En interrogeant la même base avec la même requête avec Delphi via ADO:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Function GetValeur:Real;
Var mValeur : Real;
Begin
  Qry1.active := false;
  Qry1.Sql.Clear;
  Qry1.Sql.Add('select top 1 Valeur1 from MaTable');
  Qry1.active := true;
  Result := Qry1.Fields[0].AsFloat;
  Qry1.active := false;
End;
La fonction GetValeur me retourne 134.5433 !!!

Elle arrondit à la 4ème décimale. Pourquoi ?

Surtout que si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Function GetValeur:Real;
Var mValeur : Real;
Begin
  Result := 134.543277;
End;
La fonction GetValeur me retourne bien 134.543277