Я хочу показать результат Math.round (оценка * 0,10), но то, что показано, является результатом результата - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть следующий код JavaScript:

score -= Math.round(score * 0.10);
$('.sc').text(score);
$('.score').text('-' + Math.round(score * 0.10));

Что это делает? Хорошо, допустим, у меня есть div с классом sc со счетом = 456, и я хочу вычесть 10% из этого числа без десятичных дробей.

Я использую это: score -= Math.round(score * 0.10); результат 456 - 46 = 410 $('.sc').text(score); делает div sc show: 410

Пока все хорошо, но у меня есть еще один div с классом: оценка. В этом разделе я хочу показать 46. Я думал, что использование $('.score').text('-' + Math.round(score * 0.10)); покажет это, но это дает 10% от 410, а не 456

Так, как я могу показать 46 как результат в div: .score?

С уважением,

Maurice

Ответы [ 5 ]

1 голос
/ 10 февраля 2012

не знаю, почему вы не просто используете новую переменную и делаете это таким образом

var newScore = Math.round(score *= .9);
$('.sc').text(newScore);
$('.score').text('-' + (score - newScore));

, где score *= .9 дает вам 90% балла (что составляет 10%), а затем вы можетепросто вычтите из исходного числа.

, чтобы ответить на ваш вопрос «почему», когда вы выполняете математику со счетом во второй раз, вы делаете это на самом новом значении, а не на исходном.

1 голос
/ 10 февраля 2012

Следите за вычетом, а не рассчитывайте его несколько раз.

var penalty = -Math.round(score * 0.10); 
score += penalty 
$('.sc').text(score);
$('.score').text(penalty);
0 голосов
/ 10 февраля 2012
$('.sc').text(Math.round(score * .9));
$('.score').text('-' + Math.round(score * .1));
0 голосов
/ 10 февраля 2012

Не нужно вычитать и все такое:

$('.sc').text(Math.round(score*0.9));
$('.score').text("-" + Math.round(score*0.1));
0 голосов
/ 10 февраля 2012

Вы устанавливаете счет на округленный результат. Затем вы снова округлите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...