Rubyのテストデモ続きです。

昨日の続きなのですが、6番目と8番目の数値が小数点以下16桁で表示されるのは何故かを調べようと試みに計算させてみました。プログラムは、下手なプログラミングでお恥ずかしいですが、下の写真の通りです。

結果は以下の通りです。どうも6番目と8番目の計算はFloat演算で丸められなくて16桁で表示されるようです。
7番目が丸められて小数点以下16桁で表示されないのが不思議ですが、0.999999 + 9 x 0.1 ** 7で計算させた時に0.9999998999999999となることから、6番目や8番目とは違ってFloat演算の丸めが働いたのかと(勝手に)推測しています。
今回のデモでは、有理数(Rational)表現とFloat演算が混在しているので正確な評価が出来ないまたは出来にくいと思われます。
Rubyでは、いい加減に丸めたり丸めなかったりしているという訳ではなく、10進数を2進数で表現する際に割り切りにくいものでも精度の限界まで厳格に計算しているそうです。表現に不適切がありましたらお知らせください。訂正いたします。

いい加減な推測かも知れないのでお分かりの方はお教えいただけますとありがたいです。
表現等不適切がありましたら、お教えください。訂正いたします。