2016-11-09 70 views
0

我想在python中做一些数学运算。这里是我的代码:如何将一个浮点数乘以十进制数并得到一个浮点数

if(height.is_integer()): 
    height = int(height) 
meters = height * .3048 
in_m = "%d meters" % meters 
print "You are also also %s tall (let's hope it doesn't round)." % (in_m) 

正如你可以看到我试图使任何高度的用户定义的量,然后乘上一个小数得到定义为米浮点数。问题是,当我输入一个像6或5.25的数字时,它就会下降到一米。谁能帮我?

回答

0

in_m = "%d meters" % meters

它只是向下取整为一米。

使用%d的转换适用于任何数值,只打印其整数部分。要将值打印为浮动值,应该使用%f%e%g;为您的需要,%g似乎是最好的默认值。

+0

非常感谢@Netch。我很困惑。我还有一个问题。为什么它不会在某些情况下,不管我使用它像'磅的raw_input =() 磅=浮动(磅) 如果(lbs.is_integer()): \t高度= INT(高度) your_weight =“重“ your_pounds =”%d磅%s“%(磅,你的重量) kg =磅* .453592打印”在公制系统,这将是%s“%(in_kg)'这让我一个很好的浮点数? – Jacusaurus

+0

@Jacusaurus您的代码充满了混合变量名称和未知方法,如'is_integer'。请至少不要引发异常。此外,更新后的代码应该添加到问题中(最好不要取代最初的代码),因为评论中的格式太过简单。 – Netch