도면 자동화 프로그램에서 AutoCAD 객체의 좌표를 뽑아 텍스트로 출력하는 함수를 사용하고 있었는데,
이제껏 에러가 없었는데 고객사에서 에러가 난다고 연락이 왔습니다.
프로그램을 실행해보니 AutoCAD 객체의 좌표가 "986e3" 이런 과학식으로 출력된게 아닌가!
그래서 소수점 아래의 값이 잘려 버렸습니다.
출력하는 함수를 보니 아래와 같았습니다.
그래서 아래와 같이 소수점 출력 방식으로 변경했습니다.
이제껏 에러가 없었는데 고객사에서 에러가 난다고 연락이 왔습니다.
프로그램을 실행해보니 AutoCAD 객체의 좌표가 "986e3" 이런 과학식으로 출력된게 아닌가!
그래서 소수점 아래의 값이 잘려 버렸습니다.
출력하는 함수를 보니 아래와 같았습니다.
ofstream file(pFilePath , ios::app);
file << pt.x << "," << pt.y;
ofstream의 기본 출력방식은 과학식이었습니다.그래서 아래와 같이 소수점 출력 방식으로 변경했습니다.
ofstream file(pFilePath , ios::app);
file.precision( 5 ); // 소수점 자릿수 5
file.setf(ios_base:: fixed, ios_base:: floatfield); // 소수점 방식으로 표시됨
file << pt.x << "," << pt.y;
댓글
댓글 쓰기