Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Float::rationalize()メソッドの使い方

rationalizeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

rationalizeメソッドは、浮動小数点数(Float)を分数(Rational)に変換するメソッドです。コンピュータが扱う浮動小数点数は、無限の小数を有限の桁数で表現するため、厳密な値とは異なる丸め誤差を含むことがあります。このメソッドは、そうした浮動小数点数を、分子と分母を持つRationalオブジェクトという形で、可能な限り正確な分数表現に変換し直すことを目的としています。

rationalizeメソッドは、オプションで許容誤差(epsilon)を指定することができます。この許容誤差は、元の浮動小数点数から指定された誤差範囲内で、最も単純な分数表現を見つけ出すために利用されます。例えば、厳密には1/3ではないものの、それに非常に近い浮動小数点数に対して、適切な許容誤差を指定することで1/3という分数を得るといった使い方ができます。許容誤差を指定しない場合、Rubyはデフォルトの非常に小さな誤差範囲を使用して、元の浮動小数点数を最も厳密に表現できる分数を見つけようとします。このメソッドにより、浮動小数点数の計算で生じる誤差を分数として管理し、数学的な精度を保った処理を行うことが可能になります。特に、精度の高い数値表現が求められる場面で有用です。

構文(syntax)

11.25.rationalize

引数(parameters)

eps = 0

  • eps = 0: 分母の最大値(許容誤差)を指定する浮動小数点数。デフォルトは0で、最大分母の制限はありません。

戻り値(return)

Rational

Float#rationalize は、Float値を最も近い有理数(分数)で表現したRationalオブジェクトを返します。

関連コンテンツ

関連プログラミング言語