You need
FatRats.
> my @a = 1.0, * * 0.9999... *;
[...]
> my @b = FatRat(1.0), * * 0.9999... *;
[...]
> say $_, ' ', $_.WHAT for @a[^10];
1 (Rat)
0.9999 (Rat)
0.99980001 (Rat)
0.999700029999 (Rat)
0.9996000599960001 (Rat)
0.99950009999 (Num)
0.999400149980001 (Num)
0.999300209965003 (Num)
0.999200279944007 (Num)
0.999100359916013 (Num)
> say $_, ' ', $_.WHAT for @b[^10];
1 (FatRat)
0.9999 (FatRat)
0.99980001 (FatRat)
0.999700029999 (FatRat)
0.9996000599960001 (FatRat)
0.99950009999000049999 (FatRat)
0.999400149980001499940001 (FatRat)
0.9993002099650034997900069999 (FatRat)
0.99920027994400699944002799920001 (FatRat)
0.999100359916012598740083996400089999 (FatRat)