2013-09-21 5 views
43

Javascript에서 정수 나누기를 수행 할 수있는 함수가 있습니까? 부동 소수점 숫자가 아니라 정수로 나누기 응답을 받는다는 의미입니다.자바에서 정수 나누기를 수행하는 방법 (int에서 나누기 응답 받기 부동)?

var x = 455/10; 
// Now x is 45.5 
// Expected x to be 45 

그러나 x가 45가되기를 원합니다. 번호에서 마지막 숫자를 제거하려고합니다.

+2

당신은으로 parseInt 또는 Math.floor를 시도 : 기수 매개 변수를 생략하면

, 자바 스크립트는 다음과 같은 가정? –

+0

@SB 어떻게이 문제에 대해 parseInt를 사용합니까? – Nakib

+0

@Nakib,'parseInt (455/10);' – smerny

답변

101
var answer = Math.floor(x) 

나는이 일반적인 질문에 대해 인터넷 검색을하는 데 도움이되기를 진심으로 바랍니다.

+1

덕분에 나는 그것을 찾았지만 찾지 못했습니다, 어쨌든 덕분에 :) – Nakib

+13

또는 항상 사설 전에 답을 끝낼 수 있습니다. :) – xr280xr

+27

이 문제를 해결하는 방법에 대한 내 Google 검색에서 가장 중요한 아이러니를 찾았습니다. –

6

JavaScript의 사양 인 ECMAScript에는 정수가 없습니다. JavaScript의 숫자는 IEEE floating points입니다. 당신은 일반적으로 가짜 정수 수학에 어떤 종류의 메커니즘을 사용하여 숫자를 상자에 넣어야하지만 근사값을 구할 것입니다. 예를 들어 Dropbox Datastore API은 자바 스크립트 SDK에 대해이 작업을 수행합니다. API는 플랫폼간에 지원을 시도하는 int64 유형을 가지고 있기 때문입니다. 이미 다른 사람이 이미 만든 라이브러리를 사용할 수 있습니다.

16
var x = parseInt(455/10); 

에서는 parseInt() 함수는 문자열을 파싱 정수를 반환한다.

는 기수 파라미터 는 사용 예 16 (16 진수)의 기수는 문자열의 수가 십진수 16 진수로 해석되어야 함을 나타내는 것으로 참조 부호있는 시스템을 지정한다.

If the string begins with "0x", the radix is 16 (hexadecimal) 
If the string begins with "0", the radix is 8 (octal). This feature is deprecated 
If the string begins with any other value, the radix is 10 (decimal) 
+5

이것은 암시적인'number.toString()'호출을 가지고 있고'Math.floor'에 비해 상대적으로 비용이 많이 드는'parse'에 의해 뒤 따르기 때문에 비효율적입니다. 'parseInt'가'number' 인자를 받아 들일 것이라는 보장은 없습니다. – Dai