数値の表記が e を使ったものに切り替わるタイミング

2^i をプリントするプログラムを作成しました。

function main()
   for i = 1,50 do
      print(i, 2^i, type(2^i))
   end
end

main()

実行結果です。

1	2	number
2	4	number
3	8	number
4	16	number
5	32	number
6	64	number
7	128	number
8	256	number
9	512	number
10	1024	number
11	2048	number
12	4096	number
13	8192	number
14	16384	number
15	32768	number
16	65536	number
17	131072	number
18	262144	number
19	524288	number
20	1048576	number
21	2097152	number
22	4194304	number
23	8388608	number
24	16777216	number
25	33554432	number
26	67108864	number
27	134217728	number
28	268435456	number
29	536870912	number
30	1073741824	number
31	2147483648	number
32	4294967296	number
33	8589934592	number
34	17179869184	number
35	34359738368	number
36	68719476736	number
37	137438953472	number
38	274877906944	number
39	549755813888	number
40	1099511627776	number
41	2199023255552	number
42	4398046511104	number
43	8796093022208	number
44	17592186044416	number
45	35184372088832	number
46	70368744177664	number
47	1.4073748835533e+14	number
48	2.8147497671066e+14	number
49	5.6294995342131e+14	number
50	1.1258999068426e+15	number

i が 47 のときに表記が e を使ったものに変わりました。