As for the first - this is not possible with Luau VM “number” data type due to the limitation of IEEE 754 double precision floating point format and machines in general. You can try to implement your own “real” (which will be rational due to the limitation of machines) data type instead.
For the second you can just split the significand and exponent (the e) and move/strip the decimal marker to certain position (.) with string manipulation and fill some 0s where necessary - this should be trivial to implement. (or alternatively use string.format's %f specifier - though the value is rounded to certain fractional digits so it may not be exactly what you’re looking for)