2009-11-05 2 views

답변

99

분할 수를 반환하고 다시 10을 곱해야 전달됩니다 나는 비슷한 필요한

var number = 33; 
alert(Math.round(number/10) * 10); 
+0

설명 주셔서 감사합니다! – Abs

+7

이 기술은 또한 반올림을 방지하려면 'Math.floor'를 사용하여 작동합니다. –

+6

Math.ceil 메서드를 사용하여 반올림합니다. –

5

, 그래서 함수를 썼다. 십진수 반올림을위한 함수는 here이고, 정수 반올림에도이 함수를 사용 했으므로이 함수도 여기에 답변으로 설정합니다. 이 경우 둥근 할 번호를 입력하고 반올림하려는 번호 인 10을 전달하면됩니다.

function roundToNearest(numToRound, numToRoundTo) { 
    return Math.round(numToRound/numToRoundTo) * numToRoundTo; 
} 
+0

나는 이것을 함수로 만들었지 만 받아 들인 답안으로부터 다른 결과를 얻는가? 그렇지 않다면 왜 다른 수식을 사용 했는가? – RozzA

+0

동일한 값을 반환하지만 더 쉽게 사용할 수 있으므로 수식이 다릅니다. 예를 들어, 가장 가까운'.25'로 반올림하기를 원하면, 두번째 인수로'.25'를 사용하면됩니다. 다른 답변에서 수식을 사용한다면 counter-intuitive 인'.25 '로 반올림 할 때 두 번째 인수로'4 '를 사용해야합니다. – cjbarth

+0

당신은 그것을 증명할 수 있습니까? 난 그냥 콘솔에서 몇 가지 테스트를 완료했습니다 & 대답은 제 2 인자로'.25'를 사용하여 정답을 반환합니다 - 나는 하나의 라이너 함수'function roundTo (x, y) {return Math.round (x/y) * y}' – RozzA

6

여기서 i은 int입니다.

10 즉

(11)의 가장 가까운 배수로 반올림하는해진다 10
19 10
(21)에 모아 ​​20

parseInt(i/10, 10) * 10; 

된다진다 가장 가까운 10의 배수 즉,

(11)가 20
(19)이된다 (20)
(21)가 30

parseInt(i/10, 10) + 1 * 10; 
+1

나는 여러개의 코드를 찾고 있었고 코드는 절대적으로 뛰어났다. 나는 충분히 upvote 할 수 없다. 감사! – andreszs

+0

Andrew : 대단히 고맙습니다. 귀하의 의견에 감사드립니다. :-) – CMP

관련 문제