2016-12-07 17 views
-3

私は浮動小数点値を取得しようとしていますが、答えとして十進数の値を与え続けます。最初結果をfloatに変換する際に問題が発生しました

import math 

p = int(raw_input("Please enter deposit amount: \n")) 
r = int(raw_input("Please input interest rate: \n")) 
t = int(raw_input("Please insert number of years of the investment: \n")) 
interest = raw_input("Do you want a simple or compound interest ? \n") 

A = p*(1+r*t) 
B = p*(1+r)^t 

if interest == "simple": 
    print (float(A/100)) 
else: 
    print(float(B/100)) 
+0

Python 2を使用し、「A」が整数で、「A/100」が整数を与える場合は、 'A/100.0'または' float(A)/ 100'が必要です。 – furas

+1

整数除算の問題以外にも、指数演算子が間違っています。 Pythonでは '**'です。 –

+0

@ shash678:OPは、以前の質問で指摘された間違いを修正することさえ気にしませんでした:/(そして、私が見るように、[その前のもの](http://stackoverflow.com/q/40979415/2564301)...) – usr2564301

答えて

4

float(A/100)両方int型であるA/100を計算し、その結果は整数であり、唯一その後フロートに変換します。代わりに、使用できます。

float(A)/100 

か:ここで

A/100. 
+0

それはまだ私にintを与えます。私はフロートを返す必要があります。 @Ni – Duvall912

+0

最初のものは私のために働いていませんでしたが、2番目のものは完璧に走りました。なぜですか? – Duvall912

0

が問題ですが。 Python2では、整数間の分割が別の整数を返します(これはpython3では当てはまりません)。

42/100 # return 0 

解決策は、1つをフロート状態に保つことです。

42/100.0 #return 0.42 
関連する問題