Bạn có thể chuyển đổi varchars thành float và bạn có thể làm điều đó theo cách bạn đã trình bày. Varchar của bạn không được là một giá trị số. Phải có một cái gì đó khác trong đó. Bạn có thể sử dụng IsNumeric để kiểm tra nó. Xem cái này:
declare @thing varchar(100)
select @thing = '122.332'
--This returns 1 since it is numeric.
select isnumeric(@thing)
--This converts just fine.
select convert(float,@thing)
select @thing = '122.332.'
--This returns 0 since it is not numeric.
select isnumeric(@thing)
--This convert throws.
select convert(float,@thing)