2013-04-07 3 views
0

i dactylographiées une petite fonction en python et le code estcomment faire le résultat avec le type "float" en python?

def perimeter(side1,side2,side3): 
    ''' (number,number,number)->float 
    return the sum of side1,side2 and side3 
    >>>perimeter(1,2,3) 
    6.0 
    >>>perimeter(4,5,7.1) 
    16.1 ''' 

    result = side1+side2+side3 
    return result 

mais quand je l'ai utilisé, le résultat n'a pas la forme de flotteur, il était comme l'int. comment puis-je faire en sorte de float?

(je ne sais pas comment former une la fenêtre de code ici, donc pardonnez-moi)

+0

pour obtenir une somme à virgule flottante précise: 'périmètre = lambda * côtés: math.fsum (côtés)' – jfs

Répondre

3

typecast flotter

def perimeter(side1, side2, side3): 
    return float(side1 + side2 + side3) 
2

entiers Ajout produira un nombre entier. Vous pouvez convertir un ou tous à flotter, ou convertir le résultat en float:

return float(result) 
1

Peut-être que si son erreur se produit toujours après return float(side1 + side2 + side3), alors il doit spécifier dans les paramètres que les côtés sont des flotteurs. def perimeter(float(side1),float(side2),float(side3)): Peut-être que cela fonctionnera si rien d'autre n'est.

+0

Ce n'est pas syntaxiquement valide. – DSM

+0

Ce n'est pas? Il indique simplement le type que c'est. Seulement si vous passez un caractère, il n'est pas valide. – erdekhayser

+0

Essayez-le simplement sur la console. Vous ne pouvez pas faire 'def f (float (x)): pass'. Où avez-vous vu cela utilisé? – DSM

1

Si vous voulez la même précision pour chaque résultat essayer le formatage

return '%.3f' % result 
+0

Cela renvoie une chaîne, pas un numéro – heltonbiker

+0

OP demandé pour "forme d'un flotteur", donc ... – bobrobbob

Questions connexes