Clean Code that Works.

SQL 서버에서 값을 받아 오는데 이게 데이터 타입이 nchar에다가 값이 "34.8 " 이렇게 되있었다.

이전 C#에서 값을 받아 올때는 인트로 받아 와야 해서. int.parse(reader.getString(0));
이렇게 했지만. 저 경우에는 값이 "2" 이런 정수.
이번에는 정수가 아니라서 한시간 동안 삽질하다가...
그냥 일단 스트링으로 받고 더블로 바꾼다음에 더블을 인트로 다시 변환 -_ -;; 좋은 방법이 있을것인데 도무지 생각이 안나더라..;;
소스를 보면.

Humi[i] = reader.GetString(0).Trim(); 스트링 형태로 앞뒤 공백을 잘라서 저장
Light[i] = Double.Parse(Humi[i]); 더블형으로 변환
Temp[i] = Convert.ToInt16(Light[i]); 인트로 다운 캐스팅

구글신에게 좀 더 검색해 보니.
int number = (int)Math.Ceiling(doubleValue);
The smallest whole number greater than or equal to doubleValue. 뭔말이냐 -ㅁ-;;
1.0 이면 1로 1.1 이면 2로 2.1 이면 3으로 이런 식으로 변환된다는 뜻~!(MSDN에 예제가 나와서 그걸 보고 -ㅁ-ㅋ)
MSDN주소 클릭하세요
int number = Convert.ToInt32(doubleValue);
rounds it to the nearest number. 이건 반올림 한다는것??

아무튼.. 늦은 시간에 갑자기 바꾸라고 그래서 -_ㅠ 집에도 늦게갔다 -ㅅ- OTL.


ps. 글 작성하면서 MSDN에서 Convert.ToInt32(String)이것도 지원하던데.. 이러면 가운데 과정을 뺄수 있나..?
어제 해본거 같기도 하고 -_-; 다시 해봐야지. 훗. -ㅁ-;