> 웹 프론트엔드 > JS 튜토리얼 > js는 산술 연산의 정확한 계산을 구현합니다.

js는 산술 연산의 정확한 계산을 구현합니다.

不言
풀어 주다: 2018-07-17 15:55:05
원래의
6888명이 탐색했습니다.

프로젝트에서는 정확한 계산이 중요합니다. 그러면 js에서 산술 연산을 정확하게 계산하는 방법은 무엇입니까? 다음 글에서는 js가 구현한 정확한 계산을 여러분과 공유할 것입니다.

JS는 정확한 계산을 수행할 수 없습니다.

CRM 작업 시 2세대 검토 요구 사항 검토 세부 정보 페이지가 있습니다. 사용자가 입력한 숫자는 비율에 따라 다른 위치에 표시되어야 합니다(백엔드는 0.8과 같은 소수점을 전달합니다).
dubheInvest = 투자 * (1 - 비율) 연산을 하다가 문제가 발견되었습니다. 자세한 내용은 다음과 같습니다.
샘플 코드:

console.log( 1 - 0.8 );  //输出 0.19999999999999996 
console.log( 6 * 0.7 );  //输出 4.199999999999999 
console.log( 0.1 + 0.2 );  //输出 0.30000000000000004 
console.log( 0.1 + 0.7 );  //输出 0.7999999999999999 
console.log( 1.2 / 0.2 );  //输出 5.999999999999999
로그인 후 복사

위의 예에서 볼 수 있듯이 기본 js 연산 결과는 반드시 정확하지는 않으며 정밀도가 떨어집니다.
해결책

해결 방법의 원리는 부동 소수점 수에 10의 n제곱을 곱(확산)하고, 부동 소수점 수를 정수로 변환한 후 해당 연산을 수행하고, 마지막으로 결과를 다음과 같이 나누(감소)하는 것입니다. 의 10n번.
원리 예:

console.log(1-0.8);을 console.log((1 * 10 - 0.8 * 10) / 10)으로 변경하여 올바른 값을 얻으세요.
위 원칙에 따라 일부 방법은 다음과 같습니다. 캡슐화되어 이러한 문제를 해결해 보세요. 아래에 표시된 것처럼 (Math.pow(x, y);는 다음의 y번째 거듭제곱을 찾는 것을 의미합니다.

위 내용은 js는 산술 연산의 정확한 계산을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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