2 つの整数を除算すると、切り捨てられた整数の結果が得られます (つまり、結果の小数部分は破棄されます)。これが理由です。
1 / 3
あなたにあげる:
0
この問題を回避するには、オペランドの少なくとも1 つを float にする必要があります。たとえば、1.0 / 3
または1 / 3.0
または(もちろん)1.0 / 3.0
整数の切り捨てを回避します。ちなみに、この動作は Python に固有のものではありません。
(編集: @Ivc による以下の有益なコメントで言及されているように、整数オペランドの 1 つが負の場合、代わりに結果がfloor()されます。この理由については、この記事を参照してください)。
また、数値の内部表現と外部表現について混乱が生じる可能性があります。数字はそれが何であるかですが、それがどのように表示されるかを判断できます。
書式設定命令を使用して、外部表現を制御できます。たとえば、数値は次のように小数点以下 5 桁で表示できます。
n = 1/3.0
print '%.5f' %n
0.33333
小数点以下15桁を取得します。
print '%.15f' %n
0.333333333333333
.format()
最後に、関数を使用して文字列/数値をフォーマットする「新しく改良された」方法があり%
ます。例は次のとおりです。
print 'the number is {:.2}'.format(1.0/3.0)
あなたに与えるでしょう:
the number is 0.33