2011-02-28 383 views
1

我試圖根據給定的最大分鐘數和他們一直等待多少分鐘來找出進度條的百分比。例如,用戶表示他們將等待45分鐘,但最終結束時間爲2小時。我怎樣才能把它轉換成一個百分比?如何將分鐘數轉換爲百分比?

在這種情況下,我認爲這會工作:

minutes waited/max minutes * 100 

但在這種情況下,等待幾分鐘是120除以45再次百給了我267,圓潤它。我是否需要額外的支票來查看是否超過100,然後只使用100%作爲進度條編號?

回答

1

從技術上講,它超過了100%的時間,因此您需要實施最終檢查以確定它是否大於100%,如果是,則將其更改回100%。

我還會推薦(如果適用)重新計算剩餘時間,所以他們從未看到100%,實際上他們還剩下45分鐘。

0

這將給你百分比上限,沒有額外的檢查。 敏(100分鐘等待/最大分鐘* 100)

0

120是45達267%根據不同的語言,你可以使用一個三元操作符:

double ratio = (waited/max) * 100.0; 
double percent = ratio > 100.0 ? 100.0 : ratio; 

我格雷厄姆同意,雖然,它應該在運行中重新計算。

0
newMaxMinutes = timeSoFar/percentageOfWorkSoFar 
progress = percentageOfWorkDoneSoFar