3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Ruby] Rationalクラス使ってみて気づいたこと

Posted at

RubyのRationalは有理数を扱うクラスです。
あるデータの状態割合を計算、画面表示しようと使ってみてうまくいかなかったことを書く。
※何個中何個が有効みたいな感じです。

分母0はやっぱだめ

Rational(2, 0) って書くと、ZeroDivisionError エクセプションが発生します。

irb(main):005:0> Rational(2,0)
ZeroDivisionError: divided by 0

まあ、当たりまえか。

勝手に既約される

今回、「8/10個が有効」みたいに表示したくて、Rationalと使ってみたのですが、勝手に約分してしまうので、to_sすると個数が減ってしまう自体に4/5。。。残念。
どうもruby1.8では約分されなかったみたいだけど、そのメソッドは廃止されてた。

分子に0を入れると、分母は1になる

irb(main):001:0> Rational(0, 10)
=> (0/1)

これは0に限らないけど、整数は分母1です。

irb(main):003:0> 7.to_r
=> (7/1)

こんな書き方もできる!(~2.1)

irb(main):004:0> 2/3r
=> (2/3)

ということで、今回の用途で表示には使えなかったよん、残念。

3
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?