みるべあのエンジニア日記

勉強したことについてTwitterとガチブログの中間くらいのスタンスで書く日記

RubyとPythonの除算における結果の違い

RecursionPythonを使い始めたPython初心者です。
Pythonで除算をしたときにRubyと異なる結果が出力されたので気になって調べてみました。

Rubyの場合、整数同士の除算において結果は整数で出力されます。
余りのある除算においても小数点以下切り捨てで商のみが出力されます。

irb(main):001:0> 30 / 5
=> 6

irb(main):002:0> 30 / 7
=> 4

ところがPythonにおいては下のとおり浮動小数点で出力されます。

>>> 30 / 5
6.0

>>> 30 / 7
4.285714285714286

違和感...。
調べてみると、

整数の除算結果は浮動小数点になります

6. 式 (expression) — Python 3.9.1 ドキュメント

さらに、Pythonには切り捨て除算なるものがあり、 // で表現するらしい。

>>> 30 // 5
6

ではでは、少数で切り捨て除算をしたら?

>>> 30 // 5.0
6.0

浮動小数点で出力されました。
以上、Python初心者からの小ネタでした。

Python 3.8.6
Ruby 2.7.2