2012-09-21 6 views
11

18/7 일 때 계산기에서 2.5714285714285714285714285714286을 얻습니다. 제 슈퍼 제한적 수학 능력 2에서 몫이고 .5714285714285714285714285714286은 나머지입니다.JavaScript에서 int와 remainder를 부동 소수점으로 사용하는 방법

JavaScript로 어떻게 모델링 할 수 있습니까?

감사합니다.

+2

나머지는 '4'가 아닐까요? '18 % 7 === 4'. – elclanrs

+0

아마도 나머지는 올바른 이름이 아닙니다. 나는 그 부동 소수점 비트를 원한다. –

답변

21
var floatingPointPart = (18/7) % 1; 
var integerPart = Math.floor(18/7); 
+1

왜'Math.trunc'가 아닌가? 그런 다음 음수로도 작동합니다. – letmaik

0
var decimals = float - (float | 0); 
가장 수학에서
6
var rawQuotient = 18/7; 
var remainder = rawQuotient % 1; 
var quotient = rawQuotient - remainder; 

특히 전부가 분획 (18/7ths)로 표현 될 수있는 소정의 소수 부분와 전체 부분 사이의 구별을위한 실질적인 필요성이 진짜 같은 없다 숫자 또는 정수와 분수의 혼합 (2 및 4/7ths).

프로그래밍 또는 엔지니어링 또는 기타 파생물을 접할 때 명확한 용도가 있습니다. 그러나 그 몫은 실제로 모든 것, 정수 및 분수입니다.하지만 당신은 그 것을 나타냅니다.

+0

수학 라이브러리에 의존하는 허용 된 대답보다 (단순한 산술 사용) 대답이 더 낫습니다. – Curious

+0

여기서 몫에는 나머지를 통해 유도 된 반올림 오류가있을 수 있습니다. – Ethan

0

실제로 2는 지수이고 나머지는 4/18입니다.

Math.divideby= function(d, dby){ 
    var q= Math.floor(d/dby), r= d-(q*dby); 
    return r== 0? q:q+' and '+r+'/'+d; 
} 

Math.divideby (18,7)

/* 리턴 값 (문자열) */

2 4/18

2

2 (또는 결과의 정수 부분), 4는 나머지이며, 4/7은 OP가 요청한 결과의 부동 소수점 부분입니다.

var result = (18/7); 
var integerPart = Math.floor(result); 
var floatingPointPart = result - integerPart; 

integerPart 및 floatingPointPart가 요청 된 값입니다.

1

/ & % 연산자를 사용하여 간단한 수학을 사용할 수 있습니다.

'num1'을 두 번째 값인 첫 번째 값 & 'num2'로 간주하십시오. 그런 다음 :

var Quotient = (num1 - (num1 % num2))/num2; 

var FloatingPoint = (num1 % num2)/num2; 
4

Math.floor는 음수의 경우는 interger의 몫을 얻기 위해 비트 연산을 사용하는 것이 좋을 것이다 잘못된 방향으로 결과의 라운딩의 문제가있다.

var quot = ~~(num/num1) 

잘하면이 작품!

관련 문제