> 일반적인 문제 > JS 반올림

JS 반올림

百草
풀어 주다: 2023-07-04 10:07:03
원래의
19000명이 탐색했습니다.

js 반올림 방법: 1. 숫자를 지정된 소수 자릿수로 반올림할 수 있는 tofixed 방법 2. 숫자를 가장 가까운 정수로 반올림할 수 있는 round() 방법.

JS 반올림

1, tofixed 메소드

toFixed() 메소드는 Number를 지정된 소수 자릿수로 반올림할 수 있습니다. 예를 들어, 데이터 Num이 소수점 2자리까지 유지되면 다음과 같이 표현됩니다. toFixed(Num); 그러나 반올림 규칙은 소위 Banker's rounding 규칙이 사용됩니다. 은행원 반올림 방법 , 그 본질은 5까지 반올림하여 짝수를 얻는 방법입니다(5까지 반올림하여 짝수로 유지라고도 함). 구체적인 규칙은 다음과 같습니다.

간단히 말하면 5로 반올림하는 것을 고려하세요. 5 이후의 숫자가 0이 아니면 1을 더하세요. 5 이전의 숫자가 짝수이면 버려야 합니다. 5 이전의 숫자가 홀수이면 1로 반올림해야 합니다.

분명히 이 규칙은 우리가 일반적으로 데이터를 처리하는 방식과 일치하지 않습니다. 이 문제를 해결하려면 Math.round 메서드를 사용하여 구현을 사용자 정의하여 처리를 위해 유지할 데이터 비트 수를 지정할 수 있습니다.

2, 라운드 방식

round() 방식은 숫자를 가장 가까운 정수로 반올림할 수 있습니다. 예: Math.round(x)는 x를 가장 가까운 정수로 가져옵니다. 반올림 방법은 수학의 반올림 규칙을 따르는 반올림 방법에 사용됩니다. 소수점 처리는 그다지 편리하지 않지만 다양한 요구 사항에 따라 맞춤 설정할 수 있습니다.

예를 들어 X를 소수점 이하 두 자리까지 처리하려면 Math.round(X * 100) / 100을 사용하여 처리할 수 있습니다.

기타 콘텐츠:

JavaScript에서 값을 반올림하는 시나리오는 다음과 같습니다.

업 반올림: ceil 반올림: 바닥 반올림: round 고정 정밀도: toFixed 고정 길이: toPrecision 반올림:parseInt, 비트 연산

이 문서에서는 이러한 6가지 API를 간략하게 설명하고 요약합니다.

1. 반올림: ceil

ceil은 '천장'을 의미하며, 이는 값보다 높고 숫자에 가장 가까운 정수를 의미합니다. ceil은 Math 개체의 정적 메서드이며 호출 메서드는 다음과 같습니다.

Math.ceil(12.34); //13

2. down: 바닥

floor는 '바닥'을 의미하며, 이는 값 아래에서 가장 가까운 정수를 의미합니다. 바닥은 Math 개체의 정적 메서드이며 호출 메서드는 다음과 같습니다.

Math.floor(12.68) // 12

3. : round

round 이 함수는 부동 소수점 숫자를 반올림하고 정수 자릿수를 유지하는 것입니다. round는 Math 개체의 정적 메서드이기도 하며 호출 메서드는 다음과 같습니다.

Math.round(12.34) // 12Math.round(12.54); . 고정 정밀도: toFixed

toFixed는 위의 세 가지 메소드와 다릅니다. 이는 Number 프로토타입에 구현된 메소드이며 해당 기능은 부동 소수점 숫자를 반올림하고 고정 소수점 자리를 유지하는 것입니다. toFixed는 매개변수를 전달해야 하며 호출 방법은 다음과 같습니다.

100.456001.toFixed(2); // 100.46100.456001.toFixed(3) // 100.456

5. Number 프로토타입에도 있습니다. 부동 소수점 숫자를 처리하기 위해 구현된 메서드입니다. toFixed와는 달리 부동 소수점 숫자를 반올림하고 정수 부분을 포함한 고정 길이의 유효 숫자를 유지합니다.

99.456001.toPrecision(5); // 99.456100.456001.toPrecision(5); // 100.46

6. 반올림:parseInt

parseInt는 전역 개체 창의 메서드이며 해당 기능은 다음과 같습니다. 값은 반올림되어 다음 두 가지 상황으로 나뉩니다.

1. 문자열 값을 숫자 정수로 변환하고 변환할 수 없는 문자(소수점 포함)가 나타날 때까지 문자열의 각 문자를 변환합니다.

2. 부동 소수점 유형 값을 반올림하고 소수 부분을 무시하고 반올림하지 않습니다.

// 문자열 값 parseInt('100') // 100parseInt('100axt'); ; 비트별 OR 연산을 수행하면 원래 값은 변경되지 않습니다~~: 두 개의 비트별 NOT 연산으로 얻은 원래 값도 원래 값입니다.>> 0: 오른쪽으로 0비트 이동> ;> 0: 0비트만큼 부호 없는 오른쪽 시프트

이러한 비트 연산자는 반올림 연산을 구현할 때 몇 가지 일반적인 특성을 보여줍니다.

Number 유형의 경우 비트 연산을 직접 적용하면 다른 유형의 경우와 거의 동일한 결과가 나타납니다. , 비트 연산이 적용되기 전에 Number()를 통해 내부적으로 숫자 값으로 변환됩니다. 특수 NaN 및 Infinity 값에 비트 연산을 적용하면 두 값 모두 0으로 처리됩니다.


숫자형의 경우 비트 연산이 직접 적용됩니다.

~~ 100100.78 | 0; // 100100.50 <>>

다른 유형의 경우 먼저 Number()를 사용하여 숫자 유형으로 변환한 다음 비트 연산을 수행합니다.

~~ '100.12' // 100, 숫자('100.12') == 100.12'100.50' >> // 100, 숫자('100.50') == 100.50'100.96' << ; // 100, 숫자('100.96') == 100.96~~ 'abc' // 0, 숫자('abc') == NaN'12abc' >> 0 // 0, 숫자('12abc') ) == NaNundefine | 0 ; // 0, Number(undefine) == NaN~~null; // 0 , Number(null) == 0true >> // 1 , Number(true) == 1false >> 0; //0 , Number(false) == 0[] << 0 , Number([]) == 0~~NaN // 0 ; 0; // 0

비트별 연산은 가장 기본적인 수준에서 작동합니다. 즉, 값을 나타내는 메모리의 비트를 기반으로 작동합니다.

비트 연산을 반올림할 수 있는 이유는 다음과 같습니다.

ECMAScript의 숫자는 64비트 배정밀도 부동 소수점 숫자로 저장되지만 비트 연산은 정수에만 적용할 수 있으므로 64비트 부동 소수점 숫자는 먼저 32비트 정수로 변환한 다음 비트 연산을 수행하고 마지막으로 계산 결과를 64비트 부동 소수점 숫자로 변환하여 저장합니다.

위 내용은 JS 반올림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿