>  기사  >  웹 프론트엔드  >  Javascript 부동 소수점 제품 Operation_javascript 기술의 여러 소수 자릿수에 대한 솔루션

Javascript 부동 소수점 제품 Operation_javascript 기술의 여러 소수 자릿수에 대한 솔루션

WBOY
WBOY원래의
2016-05-16 16:59:491647검색

Javascript에서 부동 소수점 수의 곱 연산을 수행할 때 소수점 이하 자릿수가 여러 개 나타날 수 있습니다.

부동 소수점 숫자는 계산 전에 먼저 이진수로 변환되기 때문입니다. 그러나 이진수 인코딩 후에 일부 소수는 무한 루프에 나타나며 이는 다른 프로그래밍 언어에서도 마찬가지입니다. . 비슷한 질문입니다.

이유에 대한 설명은 Baidu에서 알려져 있습니다.

예: find 1038.1-1000
1038.1=10000001110.0001100110011001100110011001100110011001100....
1 000 =1111101000

1038.1 변환 바이너리는 무한반복소수이고 1100은 순환구간이므로 대략적인 값만 취할 수 있습니다. 브라우저 버전이 높으면 toFixed() 메서드를 사용하여 반올림할 수 있습니다. 숫자를 지정된 소수점 이하 자릿수로 표시합니다.

해결책: 유지할 소수 자릿수(예: 4)에 따라 곱을 계산할 때 먼저 (10^4)를 곱한 다음 계산 결과를 (10^4)로 나누고, 마지막으로 결과를 나눕니다. 대략적인 값을 취합니다. Math.round

코드 복사 코드는 다음과 같습니다.

var m1 = 2232.00,
percent = (10/100),
total = 퍼센트*m1;
alert(total);//223.20000000000002

total = Math.round( 총*10)/10;
경고(총);//223.2
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.