Quick follow up: This is happening with MANY numbers, and not just table keys:
Source:
Lua Code:
TMW.db.global.TEST = {[28] = "test string", [29] = 28}
Result:
Lua Code:
["TEST"] = {
[28.00000000000001] = "test string",
[29.00000000000001] = 28.00000000000001,
},
Another test:
Lua Code:
TMW.db.global.TEST = {}
for i = 1, 200 do TMW.db.global.TEST[i] = i end
Lua Code:
["TEST"] = {
1, -- [1]
2, -- [2]
3, -- [3]
4, -- [4]
5, -- [5]
6, -- [6]
7, -- [7]
8, -- [8]
9, -- [9]
10, -- [10]
11, -- [11]
12, -- [12]
13, -- [13]
14, -- [14]
15, -- [15]
16, -- [16]
17, -- [17]
18, -- [18]
19, -- [19]
20, -- [20]
21, -- [21]
22, -- [22]
23.00000000000001, -- [23]
24.00000000000001, -- [24]
25, -- [25]
26, -- [26]
27, -- [27]
28.00000000000001, -- [28]
29.00000000000001, -- [29]
30, -- [30]
31, -- [31]
32, -- [32]
33.00000000000001, -- [33]
34.00000000000001, -- [34]
35, -- [35]
36, -- [36]
37, -- [37]
38.00000000000001, -- [38]
39.00000000000001, -- [39]
40, -- [40]
41.00000000000001, -- [41]
42, -- [42]
43, -- [43]
44.00000000000001, -- [44]
45, -- [45]
46.00000000000002, -- [46]
47, -- [47]
48.00000000000002, -- [48]
49, -- [49]
50, -- [50]
51.00000000000002, -- [51]
52, -- [52]
53.00000000000002, -- [53]
54, -- [54]
55, -- [55]
56.00000000000002, -- [56]
57, -- [57]
58.00000000000002, -- [58]
59, -- [59]
60, -- [60]
61.00000000000002, -- [61]
62, -- [62]
63.00000000000002, -- [63]
64, -- [64]
65, -- [65]
66.00000000000002, -- [66]
67, -- [67]
68.00000000000002, -- [68]
69, -- [69]
70, -- [70]
71.00000000000002, -- [71]
72, -- [72]
73.00000000000002, -- [73]
74, -- [74]
75, -- [75]
76.00000000000002, -- [76]
77, -- [77]
78.00000000000002, -- [78]
79, -- [79]
80, -- [80]
81, -- [81]
82.00000000000002, -- [82]
83.00000000000002, -- [83]
84, -- [84]
85, -- [85]
86, -- [86]
87.00000000000002, -- [87]
88.00000000000002, -- [88]
89, -- [89]
90, -- [90]
91, -- [91]
92.00000000000002, -- [92]
93, -- [93]
94, -- [94]
95, -- [95]
96.00000000000002, -- [96]
97.00000000000002, -- [97]
The rest of the 200 numbers serialized properly, but this issue isn't limited by any max - I tested up to 20,000 and 9982 was serializing wrong.