my sql 실행 시간 이 마이너스 인 원인 분석
<?php
list($usec, $sec) = explode(' ', microtime());
$timer = (float)$usec + (float)$sec;
mysql_query($query, $active_db);
list($usec, $sec) = explode(' ', microtime());
$stop = (float)$usec + (float)$sec;
$diff = $stop - $timer;
?>
$stop 과$timer 는 모두 전 환 된 후 얻 은 부동 소수점 입 니 다.대부분의 경우 echo$stop 과 echo$timer 가 얻 은 결 과 는 육안 으로 관찰 하면 같 지만 컴퓨터 에 저 장 된 저장 소 는 같 지 않 기 때문에 결 과 는 0 이 아니 라 마이너스 일 수도 있 습 니 다.pp 매 뉴 얼 에서 제시:부동 소수점 정밀도:분명 간단 한 10 진법 점 수 는 0.1 이나 0.7 과 같 습 니 다.약간의 정밀도 도 를 잃 지 않 고 내부 2 진법 으로 전환 할 수 없습니다.이 는 혼 란 스 러 운 결 과 를 초래 할 수 있다.예 를 들 어 floor(0.1+0.7)*10)는 예상 한 8 이 아 닌 7 로 되 돌아 가 는 경우 가 많다.이 결 과 는 내부 적 으로 7.99999999999999 와 유사 하기 때문이다.이것 은 한 가지 사실 과 관련 이 있다.그것 은 한 정 된 자릿수 로 어떤 십 진법 점 수 를 정확하게 표현 할 수 없다 는 것 이다.예 를 들 어 10 진법 의 1/3 이 0.33333333 으로 바 뀌 었 다.그 러 니 부동 소수점 결과 가 마지막 까지 정확 하 다 는 것 을 영원히 믿 지 말고 두 부동 소수점 이 일치 하 는 지 비교 하지 마 세 요.만약 확실히 더 높 은 정밀도 가 필요 하 다 면,임의의 정밀도 수학 함수 나 gmp 함 수 를 사용 해 야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
js 실행 시간 뷰 어효 과 는 그림 과 같다 데모 코드: test [Ctrl+A 선택: ]글 에 사 용 된 다운로드 주소...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.