2014-10-29 29 views
-3

我试图实现以下,轮任何数量到最低35.舍入数到最低35

例如:

5 = 0

34 = 0

90 = 70

105 = 105

110 = 105

我用下面的代码现在,

$top = (event.pageY-50); 
    $top = Math.floor(($top/35))*35; 

然而,当它是153,应该是四舍五入为140,但它是四舍五入到105?

任何帮助,将不胜感激。

+1

'变量$顶部= 153; $ top = Math.floor(($ top/35))* 35;'为我产生'140'。 – 2014-10-29 22:06:34

+1

'Math.floor(153/35)* 35 == 140'在我的浏览器中。 – Dave 2014-10-29 22:06:55

+1

Math.floor(153/35)* 35在我的控制台中等于140。 – 2014-10-29 22:06:57

回答

3
function to35(x){return Math.floor(x/35)*35;}; 
[5,34,35,36,90,100,105,110,153,160].map(to35); 

/* 
0,0,35,35,70,70,105,105,140,140 
*/ 

我错过了什么吗? 153的输入产生的140正确结果

+0

是的,你是,我的错误,当扣除50,我的原始代码以及你的是正确的。谢谢。 – 2014-10-29 22:24:26

0

使用模

$top = (event.pageY-50); 
alert($top - ($top % 35)); 

检查这个片段

window.calculate = function(){ 
 
    $top = document.getElementById('num').value; 
 
    alert($top - ($top % 35)); 
 
}
<input type="number" id='num' value="153" /> 
 
<input type="button" id='sub' value="calc" onClick='calculate()' />

说明:

您已经例如153,如果你把这个模块35你13休息,只是从你的基数此。减去你得到了你想要的东西:)

153 % 35 = 13 
153 - 13 = 140 

140/35 = 4 

和clostest底部153

+0

猜测这个发烧友只是嫉妒,他没有正确回答!但一个原因为什么会很好。 – Dwza 2014-10-29 22:15:51

+0

我没有downvote ..有人经历了所有的答案,并做到了 – 2014-10-29 22:37:14

+0

非常愚蠢。真的^^ – Dwza 2014-10-29 22:45:59

0

算法相当于

var $top = (event.pageY-50); 
$top -= $top%35; 

并通过153作为值时,它会产生140