If you omit the size, it defaults to 30. See this:
http://msdn.microsoft.com/en-us/library/ms186939.aspx
To see this in action, try executing the following statements:
--outputs: 12345678901234567890.098765432
select cast (12345678901234567890.098765432 as nvarchar)
--throws "Arithmetic overflow error converting expression to data type nvarchar."
select cast (12345678901234567890.0987654321 as nvarchar)
--outputs: 12345678901234567890.0987654321
select cast (12345678901234567890.0987654321 as nvarchar(31))
Per @krul's comment; 30 is the default length for CAST; however the default length for a data definition or variable declaration is 1.
NB: There's also an STR function which converts numeric fields to strings, for which the default length is 10.
--outputs: 1234567890
select str(1234567890)
--outputs: **********
select str(12345678901)
--outputs: 12345678901
select str(12345678901,11)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…