Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Float::divmod()メソッドの使い方

divmodメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

divmodメソッドは、浮動小数点数であるレシーバを、別の浮動小数点数の引数で割った際の「商」と「剰余」を同時に計算して取得するメソッドです。このメソッドは、計算された商と剰余を順に格納した二要素の配列[商, 剰余]として返します。

特徴的なのは、このメソッドにおける商の計算方法です。一般的な割り算のように小数点以下を切り捨てるのではなく、レシーバを引数で割った値に対してfloor関数を適用し、「その値以下の最大の整数」として商を求めます。このため、特に負の数を扱う場合、通常の整数割り算とは異なる結果になることがあります。例えば、-10.0を3.0で割った場合、商は-3.0ではなく-4.0となります。

剰余は、このfloor関数で得られた商を用いて、レシーバ - (引数 * 商)という式で計算されます。この剰余の符号は、第二引数として渡された数の符号と常に一致するという特性を持ちます。これにより、正負両方の浮動小数点数に対する割り算において、商と剰余を数学的に厳密かつ一貫した方法で扱うことが可能になります。時間の周期的な計算や、数値の特定の範囲内での循環処理など、幅広い場面で正確な商と剰余が必要とされる際に、このdivmodメソッドは非常に役立ちます。

構文(syntax)

110.5.divmod(3)

引数(parameters)

other

  • other: 割られる数(FloatまたはInteger)

戻り値(return)

[Float, Float]

このメソッドは、割られる数(レシーバー)を割る数(引数)で割った商と剰余を、それぞれFloat型の要素として持つ配列で返します。

関連コンテンツ

関連プログラミング言語