我有以下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?
亲切的问候,
莫里斯
答案 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));