Mam wartość 1555.4899999999998
przechowywaną w kolumnie float
z domyślną precyzją (53). Kiedy robię proste select
, SSMS zaokrągla dane wyjściowe zamiast drukować je z całą dostępną dokładnością. Ostatnio spowodowało to dla mnie kilka luk, ponieważ wydrukowana wartość nie działa jako literał, aby dopasować rzeczywistą zapisaną wartość.Dane wyjściowe pełnej dokładności typów zmiennoprzecinkowych w SQL Server Management Studio
Przykładowo (zauważ, że oba numery mieć dokładną reprezentację w uproszczonych float
)
declare @f1 float
declare @f2 float
set @f1 = 1555.49
set @f2 = 1555.4899999999998
select @f1, @f2
select STR(@f1,30,15), STR(@f2,30,15)
Wyjścia:
1555.49 1555.49
1555.490000000000000 1555.489999999999800
analizator zapytań, po pierwsze select
wyjścia:
1555.49 1555.4899999999998
Takie zachowanie chcę uzyskać z Management Studio. Czy istnieje sposób na zapobieganie zaokrąglaniu SSMS w wyświetlaniu wyników?
Schemat bazy danych jest poza moją kontrolą, Niestety. Jestem w 100% zgodna, że 'float' jest złym wyborem dla tej aplikacji, ale jeśli byłby to właściwy typ, nadal oczekiwałbym dokładniejszej reprezentacji w Management Studio. – Simon