我确信这是可能的,但我的数学并不是那么棒。
我在我的页面上显示最新的电影,而我的应用程序使用的是五星评级系统,但是,我从Web服务收到的数据以百分比形式到达,例如: 50%。
我有什么方法可以将这个百分比转换为等级的星级,在这种情况下是50%= 2.5,允许我显示2.5星?
当我有50%的时候看起来相当简单,但如果我得到94%,它会让我可怜的小豌豆混淆大脑!请帮忙。
答案 0 :(得分:12)
如果您想将0..100
比例转换为0..5
比例,只需除以20。
如果你想要它在半星边界上,那么将其除以10
代替,这就是你需要的半星数。
请记住,我在这里谈论整数除法,其中值被截断(向下舍入)。
你可能还想考虑在划分期间更智能地舍入它,而不是截断,这样99%的东西就是5星(不是4.5)。这可以通过简单地在除法之前加上你除以的一半来完成,就像(在C中):
int percent = 94;
int halfstars = (percent + 5) / 10;
这将为0到100之间的输入值提供以下结果:
percent halfstars
------- ---------
0- 4 0
5- 14 1
15- 24 2
25- 34 3
35- 44 4
45- 54 5
55- 64 6
65- 74 7
75- 84 8
85- 94 9
95-100 10
答案 1 :(得分:2)
查找数字百分比的公式非常简单:
$percentInDecimalForm * $number
例如,94%的评分为:
.94 * 5 = 4.7
答案 2 :(得分:1)
您只需要解决以下问题:
100% ---------- 5
94% ---------- x = (94 * 5) / 100 (=) x = 4.7
现在有必要知道星形尺度的粒度(分割恒星的次数)。
既然你提到了0.5颗星,我会假设你的星粒度是1 / 0.5 = 2,所以只需解决:
round(4.7 * 2) / 2 (=) 9 / 2 (=) 4.5