Old guys rule... 1 million conversions... 11 seconds... works for positive numbers, negative numbers, zero, and NULL...
DECLARE @Places INT
SELECT TOP 1000000 @Places = FLOOR(LOG10(REVERSE(ABS(SomeNumber)+1)))+1
FROM dbo.BigTest
--Jeff Moden
Change is inevitable... Change for the better is not.