I have a Stored Procedure that does a lots of calculation, stores the results in several temporary table. Finally calculating the sum and rounding to two decimal and stores
Try this way:
SELECT ROUND(@test,2) AS Result; --> results 7585.23
SELECT ROUND(convert(float,7585.225),2) AS Result --> results 7585.23
When you store the value as float it stores the approximate value but not exact value, when you want to store exact value use Decimal, money or small money data type. Here in your example when I converted the numeric value to float, it stored the approximate value of number.
http://msdn.microsoft.com/en-us/library/ms187912%28v=sql.105%29.aspx