Quando esegui la query:
SELECT * FROM some_table WHERE id = 123
Stai facendo affidamento sull'interfaccia utente per formattare i numeri in virgola mobile. L'interfaccia che stai utilizzando utilizza due caratteri anziché più. Dopotutto, non ci sono informazioni sul numero "giusto" da mostrare.
Puoi convincere l'interfaccia a mostrare il numero giusto formattando il numero come stringa o come decimale. Ad esempio:
select format(some_float_field, 3)
lo convertirà in una stringa con tre cifre decimali. Un avvertimento:aggiungerà anche virgole che potresti non volere. Dovrebbe funzionare anche questo:
select cast(some_float_field as decimal(8, 3))
Nota che puoi facilmente verificare che i dati siano corretti eseguendo qualcosa come:
select *
from some_table
where some_float_field between 1919.987 - 0.0001 and 1919.987 + 0.0001;
Nota che non vuoi usare =
su valori in virgola mobile, ma lo capisci già.