6

整数除算は、数値が両方とも正の場合、浮動小数点の結果の切り捨てと常に同じ答えを返すことを知っています。それらの一方または両方が負である場合、それは本当ですか?

Python2とPython3で同じ結果を返す整数除算式があるかどうか知りたいだけでした(そして、はい、私は知っていますfrom __future__ import division)。

PSとりあえず、浮動小数点のオーバーフローは無視しましょう。

4

1 に答える 1

10

Python 3には当てはまらないので、自分でテストできます。

>>> int(-1/3) == -1//3
False

(商)と(剰余)の整数除算とモジュロはa、常にと(つまり、同じ符号を持つ)とb。を満たす数値を返します。が浮動小数点数の場合、式は常に0に向かって丸められます。qrb*q + r == a(a*b)>0 == q>0a*bqabs(r) < abs(q)int(q)q

そうしない限り、Python 2には常に当てはまりますが、それは、Python2ではとが整数であるfrom __future__ import divisionためa/b == a//bです。ab

于 2012-10-11T16:01:58.037 に答える