2016-11-09 66 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