Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 评分系统的数学公式_Javascript_Math_Rating System - Fatal编程技术网

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