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

Я унаследовал эту крошечную строку кода исключения для алгоритма подсчета, который я поддерживаю. Я не уверен, что он делает. Может ли кто-нибудь пройти через меня?JavaScript Math Code Пояснение

+0

Есть ли в этой строке определенная вещь, на которую вы не смогли найти документацию? edit: Я говорю о документации по языку JavaScript/стандартной библиотеки – guest

+3

Он умножает, делит, добавляет, вычитает и округляет некоторые числа. –

+0

Я не уверен, почему кто-то будет 10 *, а затем что-то вокруг. Мне интересно, что именно означает перемещение десятичной точки, если вы все равно округляете. – t0mgs

ответ

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

1

Если значение MathRScore составляет от 30 до 34,8, это заставит переменную MathScore удерживать значение в 10 раз округленное значение всего этого материала в скобках.

+0

«все, что есть в скобках», является нечетким, тем более что деление на 10 связано с умножением на 10. – Teepeemm

1

Если MathRScore находится между 29,9 и 34,9, исключительным, а затем установить MathScore к значению:

(MathRScore * 9) + 265 

округленного до ближайшего 10.

Кроме того, то, что это означает, может быть раскрыто только путем понимания того, как работают эти баллы, и мы не можем вам это сказать.