2013-07-15 2 views
16

Я сделал программу, которая делит числа, а затем возвращает число, но дело в том, что, когда она возвращает номер имеет десятичный так:Python: Удалить деление десятичной

2.0 

Но я хочу его чтобы дать мне:

2 

так все равно я могу это сделать?

Спасибо заранее!

+0

Пожалуйста, покажите нам свой код. – martineau

+0

вы также можете использовать целочисленное деление с '//', которые всегда дают int, например '1 // 2', которые дают' 0' – Copperfield

ответ

32

Вы можете вызвать int() на конечный результат:

>>> int(2.0) 
2 
+2

ValueError: недействительный литерал для int() с базой 10: '68 .0 ' – Kyrie

+2

@ Kyrie Вы можете сделать 'int (float ('68 .0 '))' – TerryA

+2

@TerryA Он не будет работать в случае 'int (1.9999999999999999999)', как я могу просто удалить десятичные знаки? – Bear

21

Когда число в десятичной системе это, как правило, в Python float.

Если вы хотите удалить десятичную дробь и сохранить ее целым числом (int). Вы можете вызвать метод int() на него, как так ...

>>> int(2.0) 
2 

Однако int раундов вниз так ...

>>> int(2.9) 
2 

Если вы хотите, чтобы округлить до ближайшего целого числа, вы можете использовать round:

>>> round(2.9) 
3.0 
>>> round(2.4) 
2.0 

А затем вызвать int() по этому поводу:

>>> int(round(2.9)) 
3 
>>> int(round(2.4)) 
2 
+0

Если бы это помогло вам, вы могли бы [Принять мой ответ] (http://meta.stackexchange.com/a/5235/192545) –

+1

Что делать, если это большое количество? – Jeff

+0

@Jeff Почему бы вам не проверить себя? У Python нет проблем с размером чисел. –

1
>>> int(2.0) 

Вы получите ответ в виде 2

+5

Что это значит, что еще нет в других ответах? –

Смежные вопросы