sql float转varchar小数值过大时会被改变

问题遇到的现象和发生背景

做汇总表

问题相关代码,请勿粘贴截图

declare @number float
set @number=113431111.23

select CONVERT(varchar,@number)
select @number

运行结果及报错内容

(无列名)
1.13431e+008

我的解答思路和尝试过的方法
我想要达到的结果

113431111.23

指定一下varchar长度
select CONVERT(varchar(20),@number)

SELECT CONVERT(NVARCHAR(50),CONVERT(DECIMAL(18,8),@number))