JavaScript는 플로팅 -Point 수의 곱셈 작업에서 여러 십진 조건을 갖습니다.
이는 플로팅 포인트 번호가 작업 후 바이너리로 변환되기 때문에 이진 코딩 후 일부 소수의 순환이 발생하여 컴퓨팅에 오류가 발생하며 다른 언어에는 비슷한 문제가 있습니다.
설명이 Baidu에서 알고있는 이유는 다음과 같습니다.
예 : 1038.1-1000
1038.1 = 100000001110.000110011001100110011001100110011001100 .....
1000 = 1111101000
1038.1 바이너리로 변환하는 것은 무한 사이클입니다. 지정된 소수점 숫자 번호로.
솔루션 : 소수점 숫자 (예 : 4와 같은)를 기준으로 먼저 제품을 계산할 때 먼저 곱한 다음 계산 결과를 나누고 결과 값 수학의 결과를 취하십시오. 라운드.
다음과 같이 코드 코드를 복사하십시오.
var m1 = 2232.00,
백분율 = (10/100),
총 = %*m1;
경고 (총); // 223.2000000000000000002
Total = Math.round (Total*10)/10;
경고 (총); // 223.2