In SQL Server 2005 str() behaves strange on some float values while rounding. While searching in net, I found the below code and explanations there.

select STR(4.65,5,1) -- it will give 4.7
select STR(3.65,5,1) -- it will give 3.6

I got some explanations here and here, but didn't get anything from there (that above T-SQL taken from one of the explanations link)

Could anyone please explain why it behaves like this?

Edit
Report