I think that is because of your Decimal declaration. Try this one:-
DECLARE @Num4 AS DECIMAL(30,10)
SET @Num4 = 1567987.4699987
SELECT LEFT(CONVERT(VARCHAR(100),@Num4),CHARINDEX('.',CONVERT(VARCHAR(100),@Num4))+2)
I have changed @Num4 to DECIMAL(30,10) and is working fine.
🙂