2013-07-15 15 views
16

ho fatto un programma che divide i numeri e poi restituisce il numero, ma la cosa è che, quando si restituisce il numero ha un decimale come questo:Python: Rimuovere la divisione decimale

2.0 

Ma lo voglio per darmi:

2 

quindi c'è comunque posso fare questo?

Grazie in anticipo!

+0

Vi preghiamo di mostrare il vostro codice. – martineau

+0

puoi anche usare la divisione di interi con '//' che danno sempre un int, per esempio '1 // 2' che dà' 0' – Copperfield

risposta

32

È possibile chiamare int() sul risultato finale:

>>> int(2.0) 
2 
+2

ValueError: letterale non valido per int() con base 10: '68 .0 ' – Kyrie

+2

@Kyrie Puoi fare 'int (float ('68 .0 '))' – TerryA

+2

@TerryA Non funzionerà in caso di 'int (1.9999999999999999999)', come posso rimuovere i decimali? – Bear

21

Quando un numero come un decimale di solito è una float in Python.

Se si desidera rimuovere il decimale e mantenerlo un numero intero (int). È possibile chiamare il metodo int() su di esso in questo modo ...

>>> int(2.0) 
2 

Tuttavia, int giri giù così ...

>>> int(2.9) 
2 

Se si desidera arrotondare all'intero più vicino è possibile utilizzare round:

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

e quindi chiamare int() su questo:

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

Se questo ti ha aiutato, puoi [Accetta la mia risposta] (http://meta.stackexchange.com/a/5235/192545) –

+1

E se si tratta di un numero elevato? – Jeff

+0

@Jeff Perché non ti vedi? Python non ha problemi con la dimensione dei numeri. –

1
>>> int(2.0) 

si otterrà la risposta come 2

+5

Cosa aggiunge questo che non è già presente nelle altre risposte? –

Problemi correlati