본문 바로가기
프리랜서 생활

실수에서 배운다

by 그냥 쑨 2015. 6. 1.

남편을 출근시켜놓고 오전잠에 빠져있는데, 울리는 전화벨소리

오늘따라 전화벨이 이렇게 반가울 수가 없었다.

 

집안일이며 작업이며 해야할 일도 하고 싶은 일도 태산인데, 도저히 일어나지지가 않는 터였다.

몇번이나 시계를 확인하면서도 도저히 일어날 수 없었던 잠을 깨워주니 진심으로 반가웠다.

 

전화는 유지보수를 진행중인 업체였다.

 

한달이 넘게 여러번의 시행착오와 수정을 거쳐 이제끝났나보다 했던 그래프 작업.

이번에는 결과값이 문제였다.

 

php로 if문을 작성해서 해당 값이 속해있는 내용을 출력하는 것인데

값이 21이하이면 level I  출력 if ($sum>22)

22~36 이면 level II 출력 if ($sum>21 and $sum>37)

37~51 이면 level III 출력 if ($sum>36 and $sum>52)

52이상이면 level IV 출력 if ($sum>51)

 

if문은 예전부터 사용해왔던 걸 복사한 것이라 문제가 없어보였다.

하지만 점수가 37점일 경우 레벨2와 레벨3의 결과값이 함께 출력되는 오류가 발생했다.

오히려 이렇게 저렇게 수정하고 나니 결과가 전혀 출력되지 않는 문제가 발생했다.

대체 뭐가 문제란 말인가?

 

곰곰히 생각하다 결과문에 포함되어있는 round($sum) 을 발견했다.

바로 $sum 값이 %로 변환한 값이었던 것이다. 그래서 클라이언트와 협의하여 소수점이하값은 반올림으로 처리하기로 했던 것.

그래서 출력은 round 처리를 해놓고선 정작 비교값에는 round처리를 하지 않아 소수점그대로 비교를 하게 된 것이었던 것이다.

 

예를 들어 $sum값이 36.5일 경우

if ($sum>21 and $sum>37) 와 if ($sum>36 and $sum>52)에 동시에 해당이 되었던 것이다.

 

 

그래서 해결은

조건문에 들어간 $sum에 모두 round처리를 해주었다.

if(round($sum)<22)

if(round($sum)>21 and round($sum)<37)

if(round($sum)>36 and round($sum)<52)

if(round($sum)>51)

 

 

 

 

 

 

'프리랜서 생활' 카테고리의 다른 글

돌아온 일복  (0) 2015.06.04
나 왜 이렇게까지 작업하고 있는 거지?  (0) 2015.06.02
요놈의 입  (0) 2015.04.23
작업이 많다. 하루가 짧네  (0) 2015.04.22
패럴랙스 스크롤링  (0) 2015.04.22