1. ホーム
  2. python

[解決済み] Pythonのmath.ceil()とmath.floor()はなぜ整数でなく浮動小数点数を返すのですか?

2022-04-29 07:31:45

質問

誰かこれを説明してくれませんか(そのまま ドキュメント - を強調しています)。

math.ceil(x) xの天井を返す を浮動小数点数で表したものです。 の場合、最小の 整数 x以上の値である。

math.floor(x) xの階数を返す を浮動小数点数で表したものです。 の場合、最大の 整数 x以下の値である。

なぜ .ceil.floor は、本来は整数を計算するはずなのに、浮動小数点数を返すのですか?


EDITです。

さて、これはなぜか非常に良い議論になりました。 すべき は浮動小数点数を返すのですが、その考えに慣れてきたところで jcollado という指摘があり、実際には する はPython 3でintsを返す...

どのように解決するのですか?

浮動小数点数の範囲は、通常、整数の範囲を超えます。浮動小数点値を返すことで、関数は整数の表現可能な範囲外にある入力値に対して、賢明な値を返すことができます。

考えてみてください。もし floor() は整数を返します。 floor(1.0e30) を返しますか?

さて、Pythonの整数は今でこそ任意精度ですが、昔はこうではなかったのです。標準ライブラリの関数は、同等のCライブラリ関数の薄いラッパーです。