Miklix

Dynamics AX 2012에서 모든 소수점을 포함한 실수를 문자열로 변환

게시됨: 2025년 2월 16일 오전 10시 40분 39초 UTC
마지막으로 업데이트되었습니다: 2026년 1월 12일 오전 8시 50분 51초 UTC

이 문서에서는 Dynamics AX 2012에서 부동 소수점 숫자를 소수점 이하 자릿수를 모두 유지하면서 문자열로 변환하는 방법을 X++ 코드 예제와 함께 설명합니다.


이 페이지는 가능한 한 많은 사람이 이용할 수 있도록 영어에서 기계 번역되었습니다. 안타깝게도 기계 번역은 아직 완성된 기술이 아니므로 오류가 발생할 수 있습니다. 원하시는 경우 여기에서 영어 원문을 보실 수 있습니다:

Convert a Real to String with All Decimals in Dynamics AX 2012

이 게시물의 정보는 Dynamics AX 2012 R3을 기준으로 작성되었습니다. 다른 버전에서는 유효하지 않을 수 있습니다.

가끔씩 실수 값을 문자열로 변환해야 할 때가 있습니다. 보통은 strFmt() 함수에 값을 전달하면 되지만, 이 함수는 항상 소수점 둘째 자리까지 반올림하는데, 제가 원하는 결과가 아닐 때도 있습니다.

다음으로 num2str() 함수가 있는데, 이 함수는 잘 작동하지만 원하는 소수점 자릿수와 문자 수를 미리 알아야 합니다.

만약 숫자를 소수점 이하 자릿수까지 모두 포함한 문자열로 변환하고 싶다면 어떻게 해야 할까요? 이상하게도 이런 작업은 항상 구글 검색을 하게 되는데, 그 이유는 방법이 생각보다 모호하고 제가 자주 사용하는 방식이 아니라서 정확한 방법을 기억하지 못하기 때문입니다. 대부분의 프로그래밍 언어에서는 실수 값에 빈 문자열을 연결하면 될 것 같지만, X++에서는 그런 방식이 지원되지 않습니다.

어쨌든 제가 찾은 가장 쉬운 방법은 .NET 함수 호출을 이용하는 것입니다. 고급 서식 지정 옵션을 포함한 여러 가지 옵션이 있지만, 단순히 실수 값을 문자열로 변환하는 간단한 작업만 원한다면 이 방법으로 충분합니다.

stringValue = System.Convert::ToString(realValue);

이 코드를 AOS에서 실행해야 하는 경우(예: 배치 작업에서) 필요한 코드 액세스 권한을 먼저 확보해야 합니다. 이 경우 .NET 코드를 호출하려면 ClrInterop 형식의 InteropPermission이 필요하므로 전체 코드 예제는 다음과 같습니다.

new InteropPermission(InteropKind::ClrInterop).assert();
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();

이 간단한 System::Convert 함수는 소수점 구분 기호로 시스템의 현재 로케일을 사용한다는 점에 유의하십시오. 이는 사용자에게는 문제가 되지 않을 수 있지만, 저처럼 소수점 구분 기호로 마침표 대신 쉼표를 사용하는 지역에 사는 경우에는, 예를 들어 해당 문자열을 다른 시스템에서 읽을 수 있어야 하는 파일에 사용해야 할 경우 추가적인 처리가 필요할 수 있습니다.

추가 자료

이 글이 마음에 드셨다면 다음 제안도 마음에 드실 겁니다.


블루스카이에서 공유하기페이스북에서 공유하기LinkedIn에서 공유하기Tumblr에 공유하기X에서 공유LinkedIn에서 공유하기Pinterest에 고정

미켈 크리스텐슨

저자 소개

미켈 크리스텐슨
남자 이름은 miklix.com의 창시자이자 소유자입니다. 전문 컴퓨터 프로그래머/소프트웨어 개발자로 20년 이상 경력을 쌓았으며 현재 유럽의 대형 IT 기업에서 정규직으로 근무하고 있습니다. 블로그를 운영하지 않을 때는 여가 시간을 다양한 관심사, 취미, 활동으로 보내며 이 웹사이트에서 다루는 다양한 주제에 어느 정도 반영되어 있습니다.