이 기사는 JavaScript 수학적 함수를 사용하고 소수점으로의 다른 반올림 방법을 포함하여 JavaScript의 다양한 숫자 반올림 방법을 탐색합니다. 또한 반올림 시점에주의를 기울여야하는 문제를 도입 할 것입니다.
키 포인트
JavaScript는 , , 및 를 포함하여 숫자를 반올림하는 몇 가지 방법을 제공합니다. 가장 가까운 정수로 반올림, 라운드 다운,
라운드 업,
숫자의 분수 부분을 잘라냅니다. -
JavaScript는 숫자를 특정 소수점 또는 상당한 숫자로 반올림하기위한
Math.round
및 Math.floor
방법을 제공합니다. 이 방법은 둥근 번호를 문자열로 반환합니다. Math.ceil
음의 숫자를 다룰 때 , , 및 Math.trunc
의 동작이 다릅니다. 예를 들어, Math.round
는 음수를 다음으로 가장 작은 정수로 반올림하는 반면 Math.floor
는 분수 부분을 잘라내어 효과적으로 위쪽으로 반올림합니다. Math.ceil
숫자의 이진 표현으로 인해 JavaScript에서 정밀 문제가 발생할 수 있습니다. 일부 소수점 숫자는 이진에서 정확하게 표현할 수 없으므로 반올림 오류가 발생합니다. Math.trunc
방법은 가장 가까운 32 비트의 가장 가까운 수를 찾는 데 사용될 수 있습니다.
반올림 방법의 선택은 특정 사용 사례에 따라 다릅니다. 는 가장 가까운 정수로 반올림하기위한 좋은 일반적인 선택이지만, , Number.toFixed
또는 Number.toPrecision
는 항상 둥글거나 위로 또는 마이너스 숫자를 처리하는 데 더 적합 할 수 있습니다. 또는 - 는 특정 소수점 또는 상당수로 반올림하는 데 적용됩니다.
Math.round
Math.floor
javaScript rounding
숫자 값을 처리 할 때, 우리는 때때로 평균 가격 또는 프로세스 랜덤 숫자를 계산할 때 정수로 반올림 해야하는 부분 부분을 생성하는 계산을 수행합니다. 다행스럽게도 JavaScript의 Math.ceil
이 예에서는 두 가지 중요한 수학 상수를 사용하여 다른 유형의 반올림을 보여줄 것입니다 : π (원의 직경과 직경의 둘레의 비율)와 E (자연 로그의 기저, "Euler Number라고도합니다. "). 두 값 모두 Math.trunc
객체의 속성이지만, 처리하기가 더 쉬워서 일부 변수에 할당합시다.
Math.floor
Math.trunc
Pro 팁 : 객체 파괴를 사용 하여이 과제를 한 줄로 만들 수도 있습니다.
이제 우리는 이러한 상수를 정의 했으므로 JavaScript에서 숫자를 반올림하기위한 몇 가지 방법을 살펴 보겠습니다. - 를 사용하여 javaScript의 라운드 숫자
우리가 볼 첫 번째 방법은
입니다. 이것은 가장 간단한 선택입니다. 가장 가까운 정수와의 일부 부분을 가진 숫자를 반올림합니다. 다음 규칙을 사용합니다. 숫자가 정확히 두 정수 사이에 있으면 반올림하십시오. 예를 들어, 2.5는 최대 3 개를 반올림합니다. Math.round
이 방법을 사용하려면 매개 변수로 반올림 할 숫자를 제공하면됩니다.
숫자를 가장 가까운 정수 값으로 반올림하려면 가 매우 편리합니다. 예를 들어, 평균 3 번의 테스트 점수를 계산하는 경우 3 점을 추가하고 3 점으로 나눕니다. 이것은 정수가 발생하지 않을 수 있으므로 Math.round
:
를 사용하여 가장 가까운 값으로 반올림 할 수 있습니다.
를 사용한 반올림 번호
우리가 볼 다음 방법은
입니다. 이것은 항상 아래의 정수까지 값을 반올림합니다 (이름은 숫자가 "바닥"으로 푸시된다는 것을 의미합니다) : const PI = Math.PI;
const E = Math.E;
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
.
Math.round()
의 일반적인 사용은 임의의 정수를 만드는 것입니다. 반올림하면 정수가 0에서 시작되고 각 정수가 반품 될 가능성이 동일합니다. JavaScript의 배열이 0 인덱스이기 때문에 0에서 시작하여 유용하므로 반올림하면 배열의 첫 번째 요소를 선택할 수 있습니다. 다음 예제는 Math.round()
를 사용하여 배열에서 임의의 요소를 선택하는 방법을 보여줍니다.
위의 코드는 const { PI, E } = Math;
로그인 후 복사
로그인 후 복사
로그인 후 복사
반올림을 사용하여 0과 4 사이의 인덱스가 반환되도록하므로 배열의 각 요소는 동일한 기회를 선택할 가능성이 동일합니다.
<🎜 🎜>를 사용한 반올림 번호
위쪽으로 둥글게 말하면 바로 이것이 Math.floor
가하는 일입니다. 이 이름은 "바닥"과 달리 "천장"에서 유래 한 것으로 값이 상승하고 있음을 의미합니다. 이 방법은 다른 모든 방법과 같은 방식으로 작동합니다. 반올림하려는 번호를 매개 변수로 제공합니다.
하지만 언제 숫자를 마무리해야합니까? 일반적인 사용법은 무언가를 담을 컨테이너 수를 계산 해야하는 경우입니다. 예를 들어, 재생 목록이 포함 된 음악 웹 사이트가 있다고 가정하면 각 재생 목록에는 10 곡이 포함되어 있습니다. 누군가가 82 곡을 업로드하면 만들려면 얼마나 많은 재생 목록을 찾아야합니다. 이것은 노래 수를 10으로 나누어서 수행됩니다 (각 재생 목록의 노래 수) : <🎜 🎜>
Math.floor
를 사용하면
를 사용하면 8로 반올림됩니다. 그러나 마지막 두 곡의 재생 목록을 만들지 않습니다! 이 경우 우리는 항상 반올림해야합니다.
Math.round(2.3); // 因为更接近2,所以向下舍入
Math.round(2.921); // 因为更接近3,所以向上舍入
Math.round(2.5); // 因为正好位于中间,所以向上舍入
Math.round(PI);
Math.round(E);
로그인 후 복사
로그인 후 복사
로그인 후 복사
<🎜 🎜>를 사용한 반올림 번호
우리가 볼 다음 방법은 입니다. 엄격하게 말하면, 이것은 반올림 함수가 아닙니다. 기본적으로 숫자의 소수 부분을 삭제하면 다음 예제와 같이 정수 부분 만 남습니다.
const PI = Math.PI;
const E = Math.E;
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
언뜻보기에 는 물론 Math.trunc
와 동일합니다. 그러나 음수 값이 매개 변수로 제공되면 다음 예에서 볼 수 있듯이 두 가지 메소드는 다르게 행동합니다.
Math.floor
차이는
를 사용하여 음수를 반올림 할 때 다음 가장 작은 정수로 반올림하고 음수 값을 절단하는 것이 위쪽으로 반올림하는 것과 동일하기 때문에 발생합니다. const { PI, E } = Math;
로그인 후 복사
로그인 후 복사
로그인 후 복사
매개 변수가 음수 일 때 는 <🎜 🎜> : <🎜 🎜>와 동일한 값을 반환합니다.
Math.floor
이러한 모든 방법은 매우 유용하지만 항상 정수 값을 반환한다는 제한이 있습니다. 숫자를 특정 소수점 또는 상당한 숫자로 반올림하려면 어떻게해야합니까?
javaScript의 소수점으로의 둥근 숫자
우리는 가 숫자를 가장 가까운 정수로 반올림하는 것을 보았습니다. 불행히도, <<> 객체는보다 정확한 정확도로 숫자를 특정 소수점으로 둥글게하는 방법을 제공하지 않습니다. 다행히도 <,,> 유형에는 몇 가지 내장 방법이 있습니다. 그들을 보자. Math.ceil
Math.trunc
를 사용하여 소수점까지의 소수점까지
이것은 숫자 자체에 의해 호출되는 숫자 방법입니다. 소수점 번호를 주어진 소수점 번호로 반올림하며, 매개 변수로 제공됩니다.
Math.round(2.3); // 因为更接近2,所以向下舍入
Math.round(2.921); // 因为更接近3,所以向上舍入
Math.round(2.5); // 因为正好位于中间,所以向上舍入
Math.round(PI);
Math.round(E);
로그인 후 복사
로그인 후 복사
로그인 후 복사
주목할만한 점은이 값이 문자열
로 반환된다는 것입니다. 메소드 호출을 함수로 래핑 하여이 문제를 해결할 수 있으며 결과를 다시 숫자로 변환합니다.
또한 참고 :이 메소드를 이미 정수 인 숫자에 적용하려고하면 단일 포인트 만 사용하여 메소드를 호출하면 오류가 발생합니다.
포인트가 메소드 콜 연산자인지 소수점인지 여부는 확실하지 않기 때문에 단일 지점을 사용하여 정수에서 메소드를 호출 할 수 없습니다. 이 문제를 해결하려면 정수를 괄호 안에 넣거나 두 개의 점을 사용하여 소수점이있는 숫자 문자를 쓰지 않고 메소드를 호출하고 있음을 명확하게 표시 할 수 있습니다.
Math.round
인수가 제공되지 않으면 숫자는 가장 가까운 정수로 반올림됩니다 (그러나 문자열로 반환) : <🎜 🎜>
Math
소수점 이하 몇 곳으로 반올림하기위한 공통 사용 사례는 통화를 다루는 것입니다. 예를 들어 가장 가까운 달러로 센트로 가격을 제공하려는 경우. 진행중인 전자 상거래 웹 사이트가 진행 중이며 장바구니의 모든 품목에 대해 15% 할인을받을 수 있다고 가정 해 봅시다. 할인 된 가격을 표시하기 전에 반올림해야 할 수도 있습니다.
Number
이것은
: 를 사용하여 쉽게 고정 할 수 있습니다
Number.toFixed
<🎜 🎜> <<> 참고 :
문제에 대한 자세한 내용은 숫자 (). tofixed () 반올림 오류 : 손상되었지만 수정 가능. <<>
Number.toPrecision
를 사용하여 소수점까지의 소수점까지
<🎜 🎜>
메소드는 메소드와 유사하게 작동하지만 숫자를 고정 된 수의 상당수로 반올림합니다. Number.toPrecision
유효한 숫자를 빠르게 상기시켜야하는 경우 기본적으로 첫 번째 0이 아닌 숫자 만 사용하는 것을 의미합니다. 많은 숫자의 경우 최종 답변은 0으로 채워질 것입니다. 예를 들어, 두 개의 중요한 숫자로 반올림 된 숫자 53,863은 54,000이됩니다. 5와 3이 0이 아닌 첫 두 숫자이기 때문에 다음 숫자는 8이므로 위쪽으로 반올림하기 때문입니다. 둥근 값이 원래 숫자의 합리적인 근사치인지 확인하기 위해 마지막에 0을 추가해야합니다. Number.toFixed
당신은 비슷한 방식으로 소수를 반올림 할 수 있습니다. 예를 들어, 0.00000623978은 0.0000062로 2 자리로 반올림됩니다. 6과 2는 처음 2 개의 0이 아닌 숫자이며 다음 자리는 3이므로 반올림됩니다.
이 방법을 사용하려면이 방법을 사용하려면 숫자로 호출하고 인수로 상당한 숫자 수를 제공합니다 (정수는 전화를 걸기 전에 괄호 안에 배치해야합니다) : .
모든 값은 문자열로 반환되며 "54000"대신 "5.4e 4"에 대해 지수 표기법으로 사용할 수 있습니다.
<,> 앞에서 언급했듯이 <🎜 🎜> 함수로 메소드 호출을 래핑하여 숫자를 반환 할 수 있습니다.
주어진 상당수로 반올림하는 일반적인 사용은 많은 숫자로 작업 할 때이며 얼마나 큰지 확실하지 않습니다. 예를 들어, 최신 게시물이 "좋아요"인 횟수를보고하고 싶다고 가정 해 봅시다. 가장 가까운 10, 100 또는 1000으로 반올림 했습니까? 어느 정도는 그것이 얼마나 인기있는 지에 달려 있습니다. 해결책은 상당한 숫자로 반올림하는 것입니다.
javaScript
의 반올림 숫자 문제
JavaScript (또는 모든 프로그래밍 언어)로 숫자를 반올림 할 때 주목해야 할 사항이 있습니다. 아시다시피, 컴퓨터는 모든 데이터 (숫자 포함)를 이진 표현으로 저장합니다. JavaScript는 숫자를 32 비트 단일 정책 바이너리 값으로 저장합니다. const PI = Math.PI;
const E = Math.E;
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
이 작업의 문제 중 하나는 일부 소수점 숫자가 이진에서 정확하게 표현할 수 없다는 것입니다. 이것은 일반적으로 문제를 일으키지 않지만 다음과 같은 이상한 결과로 이어집니다.
<0.> 이것은 이진에서 0.1과 0.2를 정확하게 표현할 수없고 함께 추가 할 때 약간의 오류를 생성 할 수 없기 때문입니다.
<🎜 🎜> 객체에는 Number
라는 또 다른 메소드가 있으며,이 방법은 32 비트를 사용하여 표현할 수있는 가장 가까운 숫자를 반환합니다. 예를 들어, 0.6125는 이진 0.101로 정확하게 표현 될 수 있으므로 동일한 값을 반환합니다.
그러나 위에서 본 것처럼 0.1은 32 비트로 정확하게 표현할 수 없습니다. 는 표현할 수있는 가장 가까운 숫자를 보여줍니다.const PI = Math.PI;
const E = Math.E;
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
보시다시피, 그것은 0.1에 매우 가깝지만 는 약간 더 높습니다. 대부분의 경우에 이것은 문제를 일으키지 않지만, 숫자를 반올림하려고 할 때 때때로 이상한 행동을 일으 킵니다.
이것은 10 진수 3.55가 32 비트 정확한 표현을 사용할 수 없기 때문에 발생합니다. 우리는 를 사용하여 실제로 그것을 나타내는 방법을 확인할 수 있습니다 :
const { PI, E } = Math;
로그인 후 복사
로그인 후 복사
로그인 후 복사
보시다시피, 실제로는 부동 소수점 번호 3.54999952316284로 표시되며 3.5로 줄어 듭니다.
JavaScript의 반올림 숫자와 관련된 이러한 문제는 자주 발생하지 않지만, 특히 결과가 정확 해야하는 경우 많은 반올림을 수행하는 경우 이러한 문제에 반드시주의를 기울여야합니다. Math.fround
라운드 숫자에 어떤 방법을 사용해야합니까?
이 기사에 설명 된 모든 반올림 방법을 사용하면 어떤 방법이 가장 적합한 지 물어볼 수 있습니다. 대답은 항상 "의존적"입니다. Math.round(2.3); // 因为更接近2,所以向下舍入
Math.round(2.921); // 因为更接近3,所以向上舍入
Math.round(2.5); // 因为正好位于中间,所以向上舍入
Math.round(PI);
Math.round(E);
로그인 후 복사
로그인 후 복사
로그인 후 복사
가장 가까운 정수로 숫자를 반올림하고 싶다면 로 잘못되지 않을 것입니다. 그러나 분수 부분에 관계없이 항상 둥글거나 올라 가고 싶다면 또는 <.>. 음수를 반올림 할 계획이라면 대신 를 사용하는 것을 고려하십시오.
주어진 소수점 또는 상당한 숫자로 반올림 해야하는 경우 또는 를 사용해야합니다. 그러나 두 방법 모두 숫자로 호출되고 문자열을 반환합니다.
이 기사에 설명 된 모든 유형의 반올림 예제를 볼 수 있습니다.
Codepen Demo Link
이러한 모든 다른 방법을 사용하면 향후 반올림 숫자에 문제가 없어야합니다.
이 기사가 유용하다고 생각되면 다음과 같은 것을 좋아할 수도 있습니다.
JavaScript 디지털 흥미로운 뉴스 Math.round
빠른 팁 : JavaScript에서 숫자를 서수로 변환하는 방법 Math.floor
Math.ceil
JavaScript의 반올림 번호에 대한 FAQ
JavaScript에서 가장 가까운 정수로 숫자를 반올림하는 방법은 무엇입니까? 함수를 사용하여 숫자를 가장 가까운 정수로 반올림 할 수 있습니다. 예를 들어, Math.trunc
는 3을 얻고
는 5를 얻게됩니다.
Number.toFixed
, Number.toPrecision
와 의 차이점은 무엇입니까? 가장 가까운 정수로 반올림,
는 가장 가까운 정수로 내려 가고 가장 가까운 정수까지 반올림합니다.
숫자를 특정 소수점 숫자로 반올림 할 수 있습니까? 예,
메소드를 사용하여 숫자를 특정 소수점으로 반올림 할 수 있습니다. 예를 들어, 는 3.14를 얻습니다. .5 부품으로 숫자를 다루는 방법은 무엇입니까? "라운딩"논리를 사용합니다. 즉, 분수 부분이 정확히 .5 일 때 가장 가까운 정수로 반올림합니다. 예를 들어, Math.round()
의 결과는 2이고 Math.round()
의 결과는 4입니다. Math.round(2.5)
Math.round(3.5)
를 양수와 음수를 반올림하기 위해 사용할 수 있습니까? 예, 는 양 및 음수로 작동합니다. 평소와 같이 양수를 반올림하고 음수를 0으로 둥글게합니다.
JavaScript에서 반올림 오류가 발생합니까? 예, 컴퓨터에서 부동 소수점 작업이 작동하는 방식으로 인해 반올림 오류가 발생할 수 있습니다. 특히 매우 크거나 아주 작은 숫자를 다룰 때 잠재적 정확도 문제에주의를 기울이는 것이 중요합니다. 이 경우 더 정확한 산술 작업을 위해 Decimal.js와 같은 라이브러리를 사용하는 것을 고려하십시오.
위 내용은 JavaScript의 반올림 번호에 대한 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!