Javascript 评分系统的数学公式
我想知道是否有更好的方法根据百分比值创建我的Javascript 评分系统的数学公式,javascript,math,rating-system,Javascript,Math,Rating System,我想知道是否有更好的方法根据百分比值创建我的stars变量 我所需要的就是根据百分比值确定评级1、1.5、2、2.5等星星 我已经用switch语句完成了,但是我想知道是否有一个数学公式可以做到这一点 这样做似乎有点冗长 var stars = 0; switch (true) { case score === 100: stars = 5;
stars
变量
我所需要的就是根据百分比值确定评级1、1.5、2、2.5等星星
我已经用switch语句完成了,但是我想知道是否有一个数学公式可以做到这一点
这样做似乎有点冗长
var stars = 0;
switch (true) {
case score === 100:
stars = 5;
break;
case score >= 90:
stars = 4.5;
break;
case score >= 80:
stars = 4;
break;
case score >= 70:
stars = 3.5;
break;
case score >= 60:
stars = 3;
break;
case score >= 50:
stars = 2.5;
break;
case score >= 40:
stars = 2;
break;
case score >= 30:
stars = 1.5;
break;
case score >= 20:
stars = 1;
break;
case score >= 10:
stars = 0.5;
break;
case score >= 0:
stars = 0;
break;
}
我承认我的数学能力不是很好(我对数字有阅读障碍),所以如果我的问题冒犯了那些严格要求自己尝试的人,我很抱歉,但这只是在折磨我的大脑
提前感谢您提供的任何帮助 简单:
stars = Math.floor(score / 10) / 2
请试试这个
星星=分数>100?0:Math.floor(分数*0.1)/2除了最后一个
案例
,分数*0.05
似乎是合理的。@David,我想问题是OP似乎想根据我的回答将分数四舍五入到0.5
的倍数。我假设最后一个案例分数>=100
是一个打字错误,应该是案例分数>=0
,否则它不会产生任何错误sense@neelsg谢谢你,这确实是个打字错误!我将尝试您刚才的答案,然后回来:)非常感谢,这对于这个基本的得分率非常有效,它为我节省了近40行代码:)欢迎使用堆栈溢出!虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!
var result = Math.floor(score * 0.1) / 2
stars = score > 100 ? 0: result