If you CAST the value to a different data type, such as decimal, SQL will automatically round the value for that type, so you will have to do a ROUND first in order to truncate the value.
;WITH cte_float_value AS (
SELECT CAST(2.159 AS float) AS float_value
SELECT CAST(ROUND(float_value, 2, 1) AS decimal(9, 2)) AS new_value
SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial: "If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them."