You can use .ToStr() on LongIntegers and Doubles to get a fixed format decimal representation, but you are correct that there aren't currently any global Str() or Val() functions to work with them.
You can however use FormatJson and ParseJson to get the functionality.
(Note that ParseJson will only emit LongInteger for integer values that don't fit in Integer, and will only emit Double for floating point values that don't fit in Float).
BrightScript Debugger> n&=5123456789
BrightScript Debugger> s=n&.ToStr()
BrightScript Debugger> var
n& LongInteger refcnt=1 val:5123456789 (&h13161BF15)
s roString (2.1 was String) refcnt=1 val:"5123456789"
BrightScript Debugger> ss=FormatJson(n&)
BrightScript Debugger> var
n& LongInteger refcnt=1 val:5123456789 (&h13161BF15)
s roString (2.1 was String) refcnt=1 val:"5123456789"
ss roString (2.1 was String) refcnt=1 val:"5123456789"
BrightScript Debugger> nn&=ParseJson(s)
BrightScript Debugger> var
n& LongInteger refcnt=1 val:5123456789 (&h13161BF15)
s roString (2.1 was String) refcnt=1 val:"5123456789"
ss roString (2.1 was String) refcnt=1 val:"5123456789"
nn& LongInteger refcnt=1 val:5123456789 (&h13161BF15)