Excuse the formatting, it seems the interface likes it like this!!!! But as an alternative, something like this:-
CREATE TABLE #testme(ConvertMe varchar(20));
INSERT INTO #testme (ConvertMe )
VALUES ('123') ,('665584'),('13.4'),('16.8.7'),('1.2.1'), ('1'), ('1.1'), ('1.1.1'),('10.8.7.5.2')
SELECT
CASE
WHEN CHARINDEX('.', ConvertMe) < 2 THEN CONVERT(DECIMAL(10,1), ConvertMe)
ELSE CONVERT(DECIMAL(10,1),LEFT(ConvertMe, CHARINDEX('.', ConvertMe) + 1))
END NewVal
FROM #TestMe
DROP TABLE #testme
...