Når du kører forespørgslen:
SELECT * FROM some_table WHERE id = 123
Du er afhængig af brugergrænsefladen til at formatere de flydende decimaltal. Den grænseflade, du bruger, bruger to tegn i stedet for flere. Der er jo ingen oplysninger om det "rigtige" nummer at vise.
Du kan overbevise brugerfladen om at vise det rigtige tal ved at formatere tallet som en streng eller som en decimal. For eksempel:
select format(some_float_field, 3)
vil konvertere dette til en streng med tre decimaler. En advarsel:den tilføjer også kommaer, som du måske ikke ønsker. Dette burde også virke:
select cast(some_float_field as decimal(8, 3))
Bemærk, at du nemt kan validere, at dataene er korrekte ved at gøre noget som:
select *
from some_table
where some_float_field between 1919.987 - 0.0001 and 1919.987 + 0.0001;
Bemærk, at du ikke ønsker at bruge =
på flydende kommaværdier, men det forstår du allerede.