2016-10-23 32 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 所以我的quiestion是,如何從答案中刪除這個.0,我在代碼中需要更改什麼?如何獲取不帶小數點的數字?

P.S我只是一個初學者,所以不要判斷,請:)

+3

這甚至不應該運行;你不能添加一個字符串和一個整數。你沒有得到TypeError嗎? – DSM

+0

不,它運行正常,我使用稱爲Thonny btw的東西 –

+0

「int」和「float」之間的操作返回一個「float」,無論結果*是否可以*完全表示爲「int」。你有理由關心嗎?您可以乘以3然後除以(整數)2(或者只是將結果的float傳遞給'int'來刪除非整數部分),並且如果產品是奇數,則會導致精度損失。 – chepner

回答

1

最簡單的方法將是類型轉換的floatint。例如:

>>> 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小數(即,整數表示)

0

基本上你想使你的答案一個整數,如果我是正確的,你可以通過 做類型轉換它爲整:

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

它應該給你想要什麼。 欲瞭解更多信息,請將類型轉換爲int,反之亦然,您可以在這裏參考Peterbe.com

0

添加類型轉換操作以將float轉換爲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