pandamanian’s diary

rubyとrailsについてアウトプットします!

『Ruby』数値について①

お疲れ様です!

今日はRubyの数値についてと主にそれにまつわる計算方法について記載します😊


数値の定義

下記よりmacのターミナルを開いてirbと打ち込んでいます😊

では数値を定義します!

irb(main):001:0> 1
=> 1

簡単ですね😄


数値はIntegerクラスに属するオブジェクトです!
前回の記事でも紹介しましたがclassメソッドを使用するとそのオブジェクトのクラスを知る事が出来ます。

irb(main):002:0> 1.class
=> Integer

数値のクラスはIntegerですね!

余談ですが。。。

irb(main):014:0> 1
=> 1
irb(main):015:0> Integer(1)
=> 1
irb(main):016:0> Integer("1")
=> 1
irb(main):017:0> 

この3パターンの実行結果は同じですね。

数値の計算


+ 等の記号を使って足し算や引き算が出来ます! では早速。。。

irb(main):021:0> 10 + 10
=> 20#足し算します
irb(main):022:0> 10 - 10
=> 0#引き算します
irb(main):023:0> 10 * 10
=> 100#掛け算します
irb(main):024:0> 10 / 10
=> 1#割り算します
irb(main):025:0> 10 ** 10
=> 10000000000#10を10乗します
irb(main):026:0> 10 % 10
=> 0#余りを算出します


ここで当たり前の様に使っている +や-はメソッドです。
つまりこう書いても等価です。

irb(main):032:0> 10.+(10)
=> 20
irb(main):033:0> 10.-(10)
=> 0
irb(main):034:0> 10.*(10)
=> 100
irb(main):035:0> 10./(10)
=> 1
irb(main):036:0> 10.**(10)
=> 10000000000
irb(main):037:0> 10.%(10)
=> 0

不思議な感じしますね。。。


数値の比較

数値は比較する事も出来ます😊

irb(main):038:0> 10 < 20
=> true
irb(main):039:0> 10 > 20
=> false


=記号をつけると引数に与えられた数値を含めて比較が出来ます!

irb(main):042:0> 10 <= 10
=> true
irb(main):043:0> 10 >= 10
=> true

くどいですが当たり前の様に使ってる<,>,<=,>=等の算数で見慣れた記号もメソッドです!

irb(main):045:0> 10.<(20)
=> true
irb(main):046:0> 10.>(20)
=> false
irb(main):047:0> 10.>=(10)
=> true
irb(main):048:0> 10.<=(10)
=> true

プログラミング未経験だとすごい不思議な感じしますよね😭

文字列から数値への変換

to_iメソッドを使用すると数値に変換する事が出来ます!

irb(main):056:0> 1 + "1".to_i
=> 2

上記は何をやってるかと言いますと to_iメソッドを使用する事によって"1"と言う文字列を1と言う数値に変換しています。 ではメソッドチェーンを使用してクラスを確認して見ましょう。

irb(main):058:0> "1".class
=> String
irb(main):059:0> "1".to_i.class
=> Integer

これでto_iメソッドは数値に変換出来るメソッドなんだと分かります。

少し脱線しますがto_sメソッドは逆で文字列に変換するメソッドです😊

前回の記事で文字列を連結するには

irb(main):060:0> "文字列" + "1"
=> "文字列1"

の様に数値をダブルクォーテーションで囲って文字列に変換しましたね🤔

to_sメソッドを使用しても同じ効果が得られます。

irb(main):061:0> "文字列" + 1.to_s
=> "文字列1"

便利ですね🤗 他にも様々なメソッドが用意されていて数値もまだまだ奥が深いです😭

またご紹介出来ればと思います!