Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

【Ruby入門】数値の基本と操作にて、数値の基本を解説しました。

ここではさらに発展させて、Rubyの数値に関する便利なメソッドを中心に解説します。

後半では、数値計算では欠かすことのできない切り捨て・切り上げ・四捨五入を解説します。上記リンクと合わせて読むと、数値の基本的操作ができるようになりますよ!

Rubyの数値を扱うメソッドあれこれ

Rubyには、数値を扱うメソッドが多数あります。ほんの一部になりますが、皆さんが使う可能性のあるものを解説します。

upto

ある数値からある数値まで昇順に処理するには、uptoを使います。

3.upto(6) do |i|
  puts i
end

[実行結果]

3
4
5
6

3からループを開始し、6まで処理することができました。

downto

昇順のuptoがあればご想像通り、降順に処理するdowntoもあります。

6.downto(3) do |i|
  puts i
end

[実行結果]

6
5
4
3

6から開始し、3まで減らしつつ処理することができました。

times

決められた回数繰り返すには、timesが便利です。

5.times do |i|
  puts i
end

[実行結果]

0
1
2
3
4

5回繰り返すことができました。

切り上げ、切り下げ、切り捨て、四捨五入

Rubyの数値計算における切り上げ、切り下げ、切り捨て、四捨五入を解説します。

Rubyで小数点以下の計算をする to_f

単純に「100/14」とすると、小数点以下が切り捨てられて7とだけ表示されてしまいます。それを防ぐために、以下のようにします。

普通に100と書くと整数値扱いになります。まずはto_fを使い、小数点以下をもつ浮動小数点に変換する必要があります。

puts 100.to_f

[実行結果]

7.142857142857143

小数点以下を得ることができました。

切り上げ ceil

ceilを使い、切り上げをしてみましょう。

数値.ceilと引数をつけずに実行すると、小数点以下1位を切り上げます。正の引数をつけると、小数点以下を切り上げます。負数の引数をつけると、整数部分の切り上げになります。

puts 123.456.ceil(2)  # 小数点以下2位で切り上げ
puts 123.456.ceil     # 小数点以下で切り上げ
puts 123.456.ceil(-2) # 十の位で切り上げ

[実行結果]

123.46
124
200

正数で試しましたが、負数なら結果が変わります。

puts -123.456.ceil(2)   # 小数点以下2位で切り上げ
puts -123.456.ceil      # 小数点以下で切り上げ
puts -123.456.ceil(-2)  # 十の位で切り上げ

[実行結果]

-123.45
-123
-100

何が起こったのか解説しましょう。

マイナスからプラスへと向かって切り上げられるからです。Rubyのマニュアルを見てみましょう

自身と等しいかより大きな整数のうち最小のものを返します。

123.456なら、小数点以下3位が存在しているから、より大きな123.46になります。しかし-123.456なら、小数点以下3位が存在しているから、直近に大きい数字-123.45となるわけです。

切り下げ floor

floorで切り上げができます。先ほどの例でfloorを見てみましょう。

puts 123.456.floor(2)  # 小数点以下2位で切り下げ
puts 123.456.floor     # 小数点以下で切り下げ
puts 123.456.floor(-2) # 十の位で切り下げ

[実行結果]

123.45
123
100

負数でも試しましょう。

puts -123.456.floor(2)  # 小数点以下2位で切り下げ
puts -123.456.floor     # 小数点以下で切り下げ
puts -123.456.floor(-2) # 十の位で切り下げ

[実行結果]

-123.46
-124
-200

切り下げはマイナス方向での処理ですので、上記のような結果となりました。

切り捨て truncate

truncateで切り捨てができます。引き続き同じ例で見てみましょう。

puts 123.456.truncate(2)  # 小数点以下2位で切り捨て
puts 123.456.truncate     # 小数点以下で切り捨て
puts 123.456.truncate(-2) # 十の位で切り捨て

[実行結果]

123.45
123
100

負数で試しましょう。

puts -123.456.truncate(2)   # 小数点以下2位で切り捨て
puts -123.456.truncate      # 小数点以下で切り捨て
puts -123.456.truncate(-2)  # 十の位で切り捨て

[実行結果]

-123.45
-123
-100

切り捨てなので、正数・負数とも結果は変わりません。

四捨五入 round

最後に、四捨五入です。roundを使います。

puts 123.456.round(2)  # 小数点以下2位で四捨五入
puts 123.456.round     # 小数点以下で四捨五入
puts 123.456.round(-2) # 十の位で四捨五入

[実行結果]

123.46
123
100

負数でも試しましょう。

puts -123.456.round(2)  # 小数点以下2位で四捨五入
puts -123.456.round     # 小数点以下で四捨五入
puts -123.456.round(-2) # 十の位で四捨五入

[実行結果]

-123.46
-123
-100

こちらも結果は変わりません。

最大公約数 gcd、最小公倍数 lcm

Rubyには、なんと最大公約数と最小公倍数を求めるメソッドもあります。gcdとlcmです。

最大公約数 gcd

gcdを使って、125と100の最大公約数を求めましょう。

puts 125.gcd(100)

[実行結果]

25

最大公約数が出ました。

最小公倍数 lcm

同じ例を使って、今度はlcmを使って最小公倍数を求めましょう。

puts 125.lcm(100)

[実行結果]

500

最小公倍数が出ました。

まとめ

本記事では、昇順の数え上げや降順の数え下げ、四捨五入、ちょっとめずらしい最大公約数や最小公倍数を解説しました。

これらは数値計算では一般的なことなので、がんばって理解して、スマートな数値計算ができるようになってくださいね!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。