2015-11-19 28 views

risposta

7

Prova type(1/2.0), questo restituirà float. Uno dei numeri deve essere un valore float per ottenere un valore di ritorno in virgola mobile.

L'operatore di divisione Python-2.x segue la divisione Classic. Quando vengono presentati gli operandi interi, la divisione classica tronca la posizione decimale, restituendo un numero intero (noto anche come divisione floor). Quando viene fornita una coppia di operandi in virgola mobile, restituisce il quoziente a virgola mobile effettivo (ovvero la vera divisione).

Esempio:

>>> 1/2   # integer truncation (floor division) 
0 
>>> 1.0/2.0  # returns real quotient (true division) 
0.5 

In Python 3.x, divisione funziona in modo diverso. type(1/2) restituirà il tipo float. L'operatore di divisione Python-3.x segue la True Division.

+0

In python2, '-1/2 == - 1', quindi" troncare la virgola decimale "potrebbe essere un po 'fuorviante. (Ma poi, la divisione intera su numeri negativi è un braintwister in sé e per sé.) –

0

In Python 2x, divisione, senza remainder/divider aggiunto al quoziente => divisione piano Se si vuole forzare 2x per tornare true division (remainder/divider aggiunto al quoziente) quindi provare.

>>>from __future__ import division 
>>>2/3 
>>>0.6666666666666666 

Ma se avete bisogno di nuovo il behaviuor precedente (cioè la divisione piano) quindi provare

>>>2//3 
>>>0 

nella divisione Python 3x Vero occurs-

Problemi correlati