2015-08-01 5 views
1

J'ai juste commencé à apprendre Python. Pourquoi lorsque j'exécute ce programme dans PowerShell le résultat est sans nombres flottants sur les lignes 9 et 10?Pourquoi pas de sortie flottante?

height = 74.0 #inches 
weight = 180.0 #lbs 

#converts from inches to cm/ and from lbs to kg. 
cm = height * 2.5400  
kg = weight * 0.453592 

print "" 
print "Height %d inches in cm is %d " % (height, cm)  
print "Weight in %d lbs in kg is %d " % (weight, kg) 

print type(kg) 
print type(cm) 

Répondre

2

Vous avez utilisé %d pour imprimer des nombres entiers. Il convertit les flottants en entiers.

Je recommande d'utiliser la méthode format au lieu de %:

print 'Height {} inches in cm is {}'.format(height, cm) 

bien qu'il est assez simple de le faire à droite avec %:

print "Height %s inches in cm is %s" % (height, cm) 

%s appels str sur les arguments.

+2

Dans le cas où les nombres à virgule flottante devraient être présentés avec un nombre fixe de décimales, '{: .3f}' (ou '% .3f' respectivement) serait une autre option. –

+0

Merci, maintenant il semble si clair et facile! – lione