2016-10-23 3 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

Простейшим способом будет набирать отливка значение 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 десятичных знаков (т. целое представление)

0

В основном вы хотите сделать свой ответ целое число, если я правильно вы можете сделать это типажей его в целое, как:

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

она должна дать именно то, что вы хотите. для получения дополнительной информации о typecast float to 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 
Смежные вопросы