PHP에서 간단한 덧셈/뺄셈을 수행하고 잘못된 결과를 반환합니다. 내 시스템 (PHP 5.3)에서 이것은 재현 가능합니다 :PHP 10 진수로 인해 이상한 결과가 발생합니다
$number = 34706;
$number2 = $number/100;
// returns: number2: 347.06
print "number2: $number2<br>";
$number3 = -347;
$result = $number2 + $number3;
// returns: "Result: 0.060000000000002
print "Result: $result";
나는 이미 인터넷을 검색했습니다. 여기에 설명 된 일반적인 부동 소수점 산술 오류의 표현인가요? : http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
저는 돈을 계산할 때마다 그것을 극복하기 위해 모든 계산에 round()를 사용할 수 있습니다. 값.
그러나 아직도 나는 그것을 다루어야 만하고 프로그래밍 언어 이상의 수준에서 다루어지지 않는다. 위와 같은 결과는 누군가에게 유용 할 수 있습니다.
옙 ... 부동 소수점 올림! PHP 자체가 아니라 디지털 컴퓨터와 보편적입니다. 프로세서의 비트 수가 많을수록'.060000000000000000002'에서 더 많은 0을 얻을 수 있지만 거의 항상 마지막 숫자가됩니다. – YvesLeBorg