|
double형 변수를 int형 변수로 주는 과정에서 괴이한 현상이 보여서 질문드립니다.
2라는 값을 갖고있는 double변수를 int형 변수에게 넘기니까 1로 바뀌어 버리는군요.
다른 값.. 그러니까 1이나 8, 9등 2가 아닌 다른 값일때는 안그러는데, 2일때만 그렇고요,
항상 그런것이 아니라 프로그램에서 화일로딩/세이브 다이얼로그가 한번 떳다... 하면 그렇게
됩니다. 이러저러한 형태로도 고쳐봤지만 모두 결과가 같았고, 대표적으로 다음과 같은 2가지
형태에서도 모두 같은 결과가 나타납니다. 혹시나 해서 타입 캐스팅을 해줘도 같은 결과가
나오고, 전혀 다른 함수에서 일처리를 해줘도 같은 현상이 일어나는 군요.
나,인트 = 궁시렁 궁시렁 계산결과 더블형; // 나,인트에 1이 담겨버립니다.
나,더블형 = 궁시렁궁시렁 계산결과 더블형; // 여기까지는 제대로 계산결과 2가 나오고...
나,인트 = 나 더블형; // 더블형은 2를 제대로 갖고 있습니다.
// 그러나 나,인트는 1을 받아버립니다.
아직까지 다른 부분에서의 버그는 찾지 못핶고요... 일단은 데이터 변수를 몽땅 double
형 변수로 고치는 무식한 방법을 써서 그런대로 현재 프로그램은 에러없이 돌아가고 있습니다.
4.0엔터프라이즈를 사용하고 있는데, 패치 프로그램들을 돌려줘도 역시 같은 문제가 발생하더
군요. 디버깅모드 에서 F8을 눌러가며 변수들을 살펴봐도 천연덕스럽게 데이터가 변질되어버리
는데 미치겠습니다. 무언가 잘못되었다는 생각은 들지만.. 혹시 이런문제에 대해 짐작가는 부분
이 있으신 분들의 조언 부탁드립니다.
|