我试图根据给定的最大分钟数和他们等待的分钟数找出进度条的百分比。例如,用户表示他们将等待45分钟,但结果是2小时。如何将其转换为百分比?
在这种情况下,我认为这样可行:
minutes waited / max minutes * 100
但是在这种情况下,等待的分数是120除以45然后百分数给我267,四舍五入。我是否需要额外检查以查看是否超过100然后只使用100%作为进度条编号?
答案 0 :(得分:1)
从技术上讲,它超过100%的时间,因此您需要执行最终检查以查看它是否大于100%,如果是,则将其更改回100%。
我还建议(如果适用)重新计算动态剩余的时间,所以他们永远不会看到100%,而实际上他们还剩下45分钟。
答案 1 :(得分:0)
这将为您提供上限为100的百分比,无需额外检查。 最小(100分钟等待/最大分钟* 100)
答案 2 :(得分:0)
120是45的267%。根据语言,您可以使用三元运算符:
double ratio = (waited / max) * 100.0;
double percent = ratio > 100.0 ? 100.0 : ratio;
我同意格雷厄姆的观点,它应该在飞行中重新计算。
答案 3 :(得分:0)
newMaxMinutes = timeSoFar / percentageOfWorkSoFar
progress = percentageOfWorkDoneSoFar