クリアメモリ

プログラミングやガジェットレビュー、便利なアプリケーションなど雑多に記録するブログ

【Ruby】分数の計算を行うRationalの引数と使い方

f:id:clrmemory:20170422184851p:plain 

Rubyでは、Rational( )というコードを使うことで、カッコ内に指定した数値を分数に治すことができます。このRationalは引数を取るので、その引数と実際の使い方を紹介します。

 

また分子だけ、分母だけを取得する方法も合わせて見ていきましょう。

 

 

はじめに

 

今回の記事は、Rubyで分数を使うRationalの引数と、実際の使用例を紹介します。

使用しているRubyのバージョンは「2.3.3」、エディタはSublimeTextで開発を行いました。

 

では早速、Rationalの引数から見ていきましょう。

 

Rationalの引数

 

タイトルの通り、Rationalは分数の計算をする時などに使用できるものなのですが、引数は2つとります。

引数というのは、仮にRational(A, B)と記述した時の「A」と「B」ですね。

この場合、Aが第一引数。Bが第二引数という呼び方をします。

 

さて、Rationalは2つの引数を取ると紹介しましたが、これらの引数には順番があり、以下のように設定することで、値を分数として記述できます。

 

Rational ( 分子, 分母 )

 

つまり「10分の1」を値にしたい場合は「Rational( 1, 10 )」になると言うわけです。

これを踏まえた上で、実際にRationalを使った分数の計算を記述してみましょう。

 

実際の使用例

 

Rationalで分母と分子を持つ分数が設定できたので、実際にコードから計算を実行していきましょう。今回は以下のような簡単なコードを記述してみました。

 

a = Rational(1, 10)
b = Rational(3, 7)

c = a + b
puts c

 

先ほど、Rationalの引数は(分子, 分母)と説明しましたね。

今回のコードでは「10分の1」と「7分の3」で足し算をしてみました。

 

計算自体が簡単なので、自分で計算してみると答えは「70分の37」であるということがわかります。実際にプログラムを実行してみても「37/70」が出力されました。

これで、分数の足し算ができました。

 

同様の方法で、引き算や掛け算などの「四則演算」が実行できるかと思います。

 

分子だけ、分母だけを出力

 

先ほどのプログラムでは、出力結果が分数になっていたと思いますが、必ずしも分数で値を受け取りたいわけではありませんよね。

次に紹介するコードを使用することで、分数から「分子だけ」を取り出したり、「分母だけ」を取り出すことができます。先ほどのコードに以下のような記述を追加してみてください。

 

a = Rational(1, 10)
b = Rational(3, 7)

c = a + b
puts c
puts c.numerator
puts c.denominator

 

「numerator」と「denominator」という記述が追加されました。

実際にプログラムを実行すると「37」「70」が出力されます。「numerator」が「分子」、「denominator」が「分母」です。

 

まとめ

 

今回紹介したRationalを使うことで、Rubyで分数の計算ができるようになりました。次に紹介した「numerator」や「denominator」も分数から値を受け取る時に使えるので、ぜひ覚えておくようにしましょう。

 

ではまた。

新着記事