Это действительно станет болью в шее, потому что поплавки являются неточным типом данных, и вы получите неявные преобразования при приведении.
это также зависит от того, где вы запускаете что-то вроде следующего
select convert(float,1.33)
в анализаторе запросов вывод 1.3300000000000001
в SSMS вывод составляет 1,33
при преобразовании в десятичное значение необходимо указать масштаб и точность
так что если вы сделаете
select convert(decimal(10,6),convert(float,1.33))
вы получите 1.330000, потому что вы указали шкалу 6
вы могли бы сделать что-то вроде этого, где после преобразования в десятичное число вы отбросите конечные 0s
select replace(rtrim(replace(convert(varchar(30),
(convert(decimal(10,6),convert(float,1.33)))),'0',' ')),' ','0')
для значения 3,00999999046326 вам нужна шкала не менее 14
select replace(rtrim(replace(convert(varchar(30),
(convert(decimal(30,14),convert(float,3.00999999046326)))),'0',' ')),' ','0')