Miklix

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

게시됨: 2025년 2월 16일 오전 10시 40분 39초 UTC

이 문서에서는 X++ 코드 예제를 포함하여 Dynamics AX 2012에서 모든 소수점을 보존하면서 부동 소수점 숫자를 문자열로 변환하는 방법을 설명합니다.


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

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 기업에서 정규직으로 근무하고 있습니다. 블로그를 운영하지 않을 때는 여가 시간을 다양한 관심사, 취미, 활동으로 보내며 이 웹사이트에서 다루는 다양한 주제에 어느 정도 반영되어 있습니다.