It seems that Mathematica can handle very big integers accurately, but cannot do the same for floating numbers.
See the following code:
aa = 10^200;
aa = aa + 1;
N[aa*Sqrt[2] - Round[aa*Sqrt[2]], 20]
The error message is
N::meprec: Internal precision limit $MaxExtraPrecision = 50.` reached while evaluating -141421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702492483605585073721264412149709993583141322266592750559275579995050115278206057148+1000000000000000000000000000000000000000000000000000000000000000000000000000000000<<36>>00000000000000000000000000000000000000000000000000000000000000000000000000000000001 <<1>>.
How to handle this kind of problem?
Block[{$MaxExtraPrecision = 250}, N[aa*Sqrt[2] - Round[aa*Sqrt[2]], 20]]
. $\endgroup$