Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

算術演算

これまでにも計算をおこなえる演算子については説明をしてきました。

  • 加算(+)
  • 減算(-)
  • 乗算(*)
  • 除算(/)
  • 剰余(%)
  • べき乗(**)

演算子を使うことで計算をおこなった時に返ってくる値は、計算をおこなったオブジェクトによって異なります。たとえばIntegerクラスのインスタンスとFloatクラスのインスタンスを計算した結果はFloatクラスのインスタンスになります。

p 1 * 1.0  #=> 1.0

同じクラスの数値を計算した結果は同じクラスになります。
そのため、Integerクラスのインスタンスを計算した結果は整数として返ってくるので小数点以下の数値は返ってきません。小数点以下の数値が必要な時はオブジェクトのクラスに気を付けましょう。

p 1 / 2       #=> 0
p 1 / 2.to_f  #=> 0.5

数値オブジェクトには、演算子を使って乗算や剰余を計算する他にもメソッドを使って計算をすることができます。

divmodメソッド

レシーバを引数に指定した値で割った時の商と余りを配列にして返します。商は「レシーバ / 引数」の結果を小さい方向に丸めた値です。余りは引数の符号と同じ符号を持った値になります。

ans = 10.divmod(3)
p ans  #=> [3, 1]

moduloメソッド

%演算子を使って計算した余りと同じ値を返します。

ans = 5.modulo(3)
p ans  #=> 2

remainderメソッド

レシーバを引数で指定した値で割った余りを返します。返してくる値の符号はレシーバの符号と同じです。

p -10.remainder(3)  #=> -1
p 10.remainder(3)   #=> 1


次のコンテンツ ホームへ戻る