我想显示Math.round(得分* 0.10)的结果,但显示的是结果的结果

时间:2012-02-10 19:49:43

标签: javascript math

我有以下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显示:410

这么好,但是我还有另一个上课:得分。在这个div我想要显示46.我认为使用$('.score').text('-' + Math.round(score * 0.10));会显示它,但这导致410的10%而不是456

那么如何在div中显示46作为结果:.score?

亲切的问候,

莫里斯

5 个答案:

答案 0 :(得分:1)

跟踪扣除,而不是多次计算。

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

答案 1 :(得分:1)

不确定为什么你不只是使用一个新的变量并以这种方式执行

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

其中score *= .9为您提供90%的分数(10%折扣),然后您可以从原始数字中减去。

回答你的问题“为什么”,当你第二次在分数上做数学时,你是按照最新值而不是原来的值来做的。

答案 2 :(得分:0)

您将分数设置为舍入结果。然后再绕一圈。

答案 3 :(得分:0)

无需减去所有这些:

$('.sc').text(Math.round(score*0.9));
$('.score').text("-" + Math.round(score*0.1));

答案 4 :(得分:0)

$('.sc').text(Math.round(score * .9));
$('.score').text('-' + Math.round(score * .1));