2014-09-19 97 views
0
if(MathRScore > 29.9 && MathRScore < 34.9) MathScore = 10*Math.round((MathRScore*45/5+(535*35-580*30)/5)/10); 

我已经继承了我维护的评分算法的这一小部分异常代码行。我不确定它究竟做了什么。有人能通过它走过我吗?JavaScript数学代码说明

+0

是否有你一直没能找到文档在该线路上具体的事情?编辑:我在谈论JavaScript语言/标准库文档 – guest 2014-09-19 18:37:04

+3

它将一些数字相乘,除,加,减和舍入。 – 2014-09-19 18:37:36

+0

我不知道为什么有人会10 *然后轮到一些东西。无论如何,如果你四舍五入,我想知道移动小数点到底是什么。 – t0mgs 2014-09-19 18:37:51

回答

3

如果您MathRScore在区间(29.9, 34.9)然后设置MathScore到(以简化形式)

MathScore = 10*Math.round((MathRScore*9+265)/10) 

通过由10划分,然后使用Math.round然后10你乘以将轮至最接近的十位。

例如

10*Math.round(1111/10) = 10*Math.round(111.1) = 10*111 = 1110 
+0

感谢@afsa!清楚地解释。 – t0mgs 2014-09-19 18:59:01

1

如果MathRScore的值是30和34.8之间,就会使可变MathScore持有的括号所有的东西舍入值10倍的价值。

+0

“括号中的所有东西”都是模糊的,特别是因为除法10与10的乘法有关。 – Teepeemm 2014-09-19 19:29:18

1

如果MathRScore是29.9和34.9之间,排他的,然后设置MathScore为值:

(MathRScore * 9) + 265 

四舍五入到最接近的10

除此之外,这只能通过了解这些分数如何工作才能揭示出来,我们不能告诉你。