2012-07-21 3 views
1
내가 MySQL의에서 도출되는 배열 계산을하고있는 중이 야

을하고 문제 사업부는 "0으로 나누기"나는이 한 Statment 통해 루프를 실행하고경고 : 제로 PHP에 근무와 MySQL

경고입니다

$v = (($v - $valuei)/($valuei) * 100); 

여기에서 $ v는 100에서 150까지 예를 들어 100, 101, 102, 103, ... 150과 같이 변경됩니다. $ valuei는 $ v의 초기 값입니다 (예 : 100). 계산은 첫 번째 출력이 0이어야하고 그 값을 0으로 만들고 왜 "Division By Zero"라는 경고를 내고 모든 "$ v"값을 0으로 만들지를 원합니다. $valuei 만약

+2

루프에 대한 전체 코드 표시 – madfriend

+1

왜 숫자 문자열로 곱하면됩니까? 어쨌든 작동 할거야 ... 근데 왜? – Dan

+0

정수가 너무 주류 인 것 같네요. – Mahn

답변

3

경고는 $ valuei가 실제로 하나의 실행 중에 0임을 제안합니다.

정말 $ valuei가 제대로 초기화 되었습니까? 이 경고를 제거하려면 어떻게 추가해야합니다 :

if($valuei != 0) { 
    $v = (($v - $valuei)/($valuei) * '100'); 
} 

이 방법, 경고가 사라집니다.

+0

고맙습니다. Anthony! 당신 말이 맞았습니다. 오류는 $ valuei 자체의 가치 때문이었습니다 ..... 모든 것이 완벽하게 작동합니다 ...... – Leo

+0

대단히 환영합니다. 나는 항상 기쁘다. :) – ATaylor

1

은 처음에 첫 번째 반복 (x - x) = 0에 다음 $v로 설정되어 있으며, 따라서, 당신은 0으로 분할된다 (또는 오히려입니다 뭔가, 실수로 0을 분할하려고합니다).

루프의 나머지 부분을 보지 않고 나는 추측 할 수 있습니다. 그러나 아마도 앞으로 나아갈 방향은 '0'대신 인덱스 '1'에서 루프를 시작하는 것입니다.

또한 왜 100 대신에 '100'을 곱하면됩니까?