2016-10-30 2 views
0

特定の反復回数で合計(x_i = 1/i ** 2)を計算しますが、Pythonはすべての浮動小数点を0に丸めます。 Ex。このコードで:= 6number_of_iterationsでPythonが浮動小数点を整数に切り捨てるのを止めるには?

number_of_iterations = int(input("Write number of iterations: ")) 
x = 0.0 
for i in range(1, number_of_iterations + 1): 
    x += 1/(i**2) 

print(x) 

、それは私が最初の反復は、x = 1と、うまくいくと仮定していますが、残りは値0

を得る1を出力します

答えて

0

あなたが理解したように、あなたの現在のコードは整数除算を使用しています。この動作は、Python 3、/に変更されたこと、それは指摘価値があるかもしれません。この時点で

x += 1.0/(i**2) 

:浮動小数点除算を使用するように変更する一つの方法は、浮動小数点数に分子を作ることです常に浮動小数点除算を示します。https://www.python.org/dev/peps/pep-0238/

関連する問題