php 연산 0으로 나누었을때...

php 연산 0으로 나누었을때...

QA

php 연산 0으로 나누었을때...

본문

아래와 같이 각각의 변수값이 0일 경우에  0을 0으로 나누게 되어 사칙연산 에러로 결과값 NAN 이 찍힙니다.

이경우 결과값으로 NAN 대신 0이 찍히게 하려면 어떻게 하려 할까요?

 

$st=0;
$av=0;
echo $av/$st;

이 질문에 댓글 쓰기 :

답변 4


<?php
$st = 0;
$av = 0;
echo (is_nan($st/$av) ? 0 : $st/$av); 
?>

 

이렇게 해보세요~

https://ko.wikipedia.org/wiki/%EB%B6%84%EC%88%98_(%EC%88%98%ED%95%99)

수학 개념 상 해당 식 자체가 성립이 안 될 듯 ....

if 조건으로 분자 부모 모두 0 이면 걍 0이다란 식으로 처리하셔야 할 듯 합니다.

0 / 0 이 과연 0일까요?

모든 수가 답입니다.

수학에서 이런걸 부정이라고 하죠.

 

수학이든 컴이든 0으로 나누면 절대 안됩니다.

위 신비님 답변 처럼 분기해서 처리하는 것이 났습니다.

 

그리고 PHP8 이상에서는 0으로 나누면 치명적에러 ( Fatal Error )가 발생합니다.

 

제대로 int값으로 변환이 안되서 그런듯 한데요
$st=0;
$av=0;
echo round($av/$st);

 

0을 그냥 빈값으로 인식되어 그런듯 한데 숫자로 인식되도록 하시면 될듯 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT