2016-10-23 5 views
0
tunnid = int(input("Sisestage oma töötundide arv ühes nädalas: ")) 
tasu = int(input("Sisestage oma tunnitasu: ")) 

if tunnid <= 40: 

    print("Teie nädalapalk on " + str(tunnid*tasu)) 

else: 

    print("Teie nädalapalk on " + str(tunnid*tasu*1.5)) 

もし私が60 * 10を掛け合わせると、900が得られるはずですが、プログラムは私に900.0を与えます。 私の疑問は、答えから.0を取り除く方法です。私は自分のコードで何を変更しなければなりませんか?小数点なしの数字の取得方法は?

p.sイムだけ初心者はとても

+3

実行する必要はありません。文字列と整数を追加することはできません。あなたはTypeErrorを手に入れませんか? – DSM

+0

これは正常に動作しません。私はThonny btwと呼ばれるものを使用します。 –

+0

'int'と' float'の間の演算は、結果が* int *として正確に表現できるかどうかにかかわらず、 'float'を返します。あなたが気にする理由はありますか? 3を掛けて(整数)2を掛けることができます(あるいは、結果のfloatを 'int'に渡して非整数部分を削除することができます)。 – chepner

答えて

1

最も簡単な方法は、型キャストするfloat値をintになります:)下さい判断してはいけません。たとえば:

>>> x = 100.0 
>>> x = int(x) 
>>> x 
100 

したがって、あなたのコードで、あなたが行う必要があります。

print("Teie nädalapalk on " + str(int(tunnid*tasu))) 
# Note: "str(tunnid*tasu)" replaced with "str(int(tunnid*tasu))" 
1

ちょうどintで数値を変換:

print('Teie nädalapalk on {}'.format(int(tunnid * tasu * 1.5))) 

を別の方法として、あなたはformatミニ言語を使用することができます:

print('Teie nädalapalk on {:.0f}'.format(tunnid * tasu * 1.5)) 

.0fは、小数点以下を切り捨てるように数値に指示します。整数表現)

0

基本的には私が正しいだ場合は、それはのように整数に型キャスト でそれを行うことができますあなたの答えの整数にしたい:

print("Teie nädalapalk on " + str(int(tunnid*tasu*1.5))) 

それは正確に何をしたい与える必要があります。 浮動小数点型をint型に浮動小数点型に変換する方法については、こちらを参照してください。Peterbe.com

0

浮動小数点型をint型に変換するために型キャスト演算を追加します。 str(tunnid*tasu*1.5)の代わりにstr(int(tunnid*tasu*1.5))を使用してください。 これは、積が整数でない場合でも小数部分を削除します。 そのようなケースも処理したい場合は、追加のチェックを追加する必要があります。

if tunnid*tasu*1.5 - int(tunnid*tasu*1.5) > 1e-10: print("Teie nädalapalk on " + str(tunnid*tasu*1.5)) else print("Teie nädalapalk on " + str(int(tunnid*tasu*1.5)))

1E-10小数部が非ゼロの場合だけで検査するための非常に少数です。それをさらに減らすことができます。

0
>>> num = 900.0 # tunnid * tasu * 1.5 
>>> int(num) if num == int(num) else num 
900 
>>> num = 900.6 # tunnid * tasu * 1.5 
>>> int(num) if num == int(num) else num 
900.6 
関連する問題