This cannot be as simple as a floating-point error, because these are IEEE 754 doubles. Every 32-bit integer (actually, every 53-bit integer) can be stored perfectly in a double-precision floating point value, which is how Lua represents numbers.
There's clearly something more insidious going on in the serialization code.
__________________
たしかにひとつのじだいがおわるのお
ぼくはこのめでみたよ
だけどつぎがじぶんおばんだってことわ
しりたくなかったんだ
It's my turn next.
Shakespeare liked regexes too!
/(bb|[^b]{2})/
|