【Ruby入門】数値の数え上げ「upto」と四捨五入
  • facebookページ
  • twitterページ
  • 2017.10.19

    【Ruby入門】数値の数え上げ「upto」と四捨五入

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

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

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

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

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

    upto

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

    [実行結果]

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

    downto

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

    [実行結果]

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

    times

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

    [実行結果]

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

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

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

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

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

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

    [実行結果]

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

    切り上げ ceil

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

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

    [実行結果]

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

    [実行結果]

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

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

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

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

    切り下げ floor

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

    [実行結果]

    負数でも試しましょう。

    [実行結果]

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

    切り捨て truncate

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

    [実行結果]

    負数で試しましょう。

    [実行結果]

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

    四捨五入 round

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

    [実行結果]

    負数でも試しましょう。

    [実行結果]

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

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

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

    最大公約数 gcd

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

    [実行結果]

    最大公約数が出ました。

    最小公倍数 lcm

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

    [実行結果]

    最小公倍数が出ました。

    まとめ

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

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


    他のRuby入門記事はこちら

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    【Ruby入門】Ruby on Railsをやってみよう!

    【Ruby入門】環境構築(Mac/Win)

    【Ruby入門】nokogiriでスクレイピング

    【Ruby入門】データベース

    【Ruby入門】gemとライブラリ

    【Ruby入門】エラーと例外処理

    【Ruby入門】モジュール(module)とMix-in

    【Ruby入門】Procクラスとラムダ(lambda)

    【Ruby入門】ブロック

    【Ruby入門】メソッド

    【Ruby入門】クラスをコーディング(2) オブジェクト指向

    【Ruby入門】クラスをコーディング(1) classを作る

    【Ruby入門】クラスの継承、オーバーライド

    【Ruby入門】クラスとオブジェクト

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    【Ruby入門】ファイルの移動、コピー、削除

    【Ruby入門】入力と出力

    【Ruby入門】Rubyの正規表現

    【Ruby入門】正規表現で置換する

    【Ruby入門】正規表現とは何か?

    【Ruby入門】文字列の結合などの操作

    【Ruby入門】CSVの基本と操作

    【Ruby入門】JSONの基本と操作

    【Ruby入門】乱数(Random)などの数値計算用クラスや端数処理

    【Ruby入門】日付の基本と操作(Time, Date)

    【Ruby入門】数値の数え上げ「upto」と四捨五入

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用に

    【Ruby入門】ハッシュ(hash)とシンボルの基本

    【Ruby入門】文字列の基本と表示メソッド

    【Ruby入門】Rubyの繰り返しを極める!様々な繰り返しのバリエーション

    【Ruby入門】最初はこれだけ!まずは手を動かしたい人のRuby入門

    【Ruby入門】ifとelseについて

    【Ruby入門】配列と操作(基本編)

    【Ruby入門】eachメソッドの使い方と応用例


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE