>  기사  >  백엔드 개발  >  PHP 부동 소수점 숫자 부동 연산을 int 문제로 전송

PHP 부동 소수점 숫자 부동 연산을 int 문제로 전송

coldplay.xixi
coldplay.xixi원래의
2020-07-13 10:50:092924검색

PHP 부동 소수점 연산은 정수 유형으로 변환됩니다. PHP의 부동 소수점 숫자는 약한 유형입니다. 연산 후 결과가 정수인 부동 소수점 숫자의 경우, PHP는 이를 정수로 처리할 수 있습니다. (floatval($ 값) * 100))].

PHP 부동 소수점 숫자 부동 연산을 int 문제로 전송

PHP 부동 소수점 부동 연산을 정수 유형 int로 전송:

이 코드를 실행하세요:

$f = 0.58;
var_dump(intval($f * 100.0));

아마도 그가 58을 출력할 것이라고 생각하겠지만 실제로는 57을 출력합니다.
그 이유는 Floating입니다. 포인트 데이터의 정밀도가 일부 손실되어 완전히 정확할 수 없습니다. 따라서 부동 소수점 숫자 결과가 마지막 숫자까지 정확하다고 절대 신뢰하지 말고 두 개의 부동 소수점 숫자가 같은지 비교하지 마십시오.

PHP의 부동 소수점 숫자는 약한 유형입니다. 연산 후 결과가 정수인 부동 소수점 숫자의 경우, PHP는 이를 정수로 처리할 수 있지만 유형은 변경되지 않습니다. 그러나 연산 후 정수가 아닌 경우 PHP는 결과를 엄격한 부동 소수점 숫자로 처리합니다. 실제 개발에서는 다음 논리를 사용하여 이 상황을 해결할 수 있습니다.

PHP 프로그래밍 입문부터 마스터까지


위 내용은 PHP 부동 소수점 숫자 부동 연산을 int 문제로 전송의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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