2016-12-27 59 views
-2

我的代碼/項目:我正在學習Python,並試圖爲某些馬拉松訓練創建一個速度計算器。解析一個整數的小數點

我的問題:如何從計算出的最終數字中分離/解析小數?

:使用以下輸入值 #[Minutes, Seconds, Distance in miles] [17, 37, 3.1] #17 * 60 = 1020; 1020 + 37 = 1057; 1057/3.1 = 340.96

整個代碼會給我的340.96秒一個答案。如果我把它除以60來找出確切的分鐘數/秒;答案變成了5.68。

我需要把這個「.68」乘以60來得到實際秒數,因爲它代表了一分鐘的68%。

recordMinutes = int(input("What is your total minutes? ")) 

for steps in range(1): 
    converted = recordMinutes * 60 
recordSeconds = int(input("What is your total seconds leftover? ")) 

for steps in range(1): 
    combined = converted + recordSeconds 

distance = float(input("What is the distance? ")) 
paceRaw = combined/distance 
paceBasic = (paceRaw/60) 

#This is where I would multiply the ".68" by 60 
pace = (#decimal remainder * 60) + #whole number 
print ("You need to run %d per mile " % pace) 

回答

0

爲初學者一個很好的做法,你會做到這一點沒有任何圖書館或方法:

>>> s = 5.68 
>>> s = s*100 
568.0 
>>> s = s%100 
68.0 
>>> s/100 
0.68 
+0

我同意,謝謝!很顯然,我想成爲一個「懶惰」的程序員,但我發現通過解構每一步,我可以更好地學習。 – adamcasey

+0

當然,很高興幫助你。還請考慮標記此答案,以便關閉該主題。 – Hisagr

3

使用divmod

>>> divmod(340.96, 60) 
(5.0, 40.95999999999998) 
+0

我怎麼會搶40.95或一起加入這兩個整數,然後用打印串? – adamcasey

+0

@adamcasey - 它是一個元組,因此可以像平常一樣訪問它。 – TigerhawkT3