将评级百分比(50%)转换为PHP中的equivelant 5星评级

时间:2012-11-04 00:29:52

标签: php

我确信这是可能的,但我的数学并不是那么棒。

我在我的页面上显示最新的电影,而我的应用程序使用的是五星评级系统,但是,我从Web服务收到的数据以百分比形式到达,例如: 50%。

我有什么方法可以将这个百分比转换为等级的星级,在这种情况下是50%= 2.5,允许我显示2.5星?

当我有50%的时候看起来相当简单,但如果我得到94%,它会让我可怜的小豌豆混淆大脑!请帮忙。

3 个答案:

答案 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