2011-02-28 377 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