C에서 금액구분 콤마 출력하기
글쓴이: angra / 작성시간: 수, 2005/11/16 - 1:55오후
제가 C에서 금액 출력할 일이 생겨서 search를 하다보니 C에서 금액 출력하는 부분에 대한 언급들이 거의 없더군요. 아마 C에서는 코볼처럼 금액을 다룰일이 별로 없어서 그런거라 추측이 됩니다. 어떤 분이 금액구분 콤마 출력하는 예제 함수는 올려주신 부분이 있더군요. 이걸 활용할려다가 아무래도 C에서 함수로 지원하지 않을까하고 더 찾아 보니 유닉스에서 localization의 일환으로 지원하는 함수가 있더군요.
print_money() { double i = 1234567.12; char buf[100] = ""; printf("locale : %s\n", setlocale(LC_MONETARY, "ko_KR")); strfmon(buf, sizeof(buf), "[%00.2i] [%!=0#1.2i]", i, i); printf("money : %s\n", buf); }
strfmon() 이라는 함수가 있습니다. 국가별(locale -a 명령을 사용해서 시스템에서 지원(이용)하고 있는 국가 셋팅을 확인해서 setlocale() 함수에 셋팅해 주시면 됩니다)로 사용하는 금액 표시 하는 방식에 따라서 화면에 출력됩니다.
locale : ko_KR money : [₩1,234,567.12] [ 1,234,567.12]
위 샘플 예제는 AIX에서 테스트한 것입니다. LINUX에서도 setlocale 부분에 인수만 바꿔주면 정상적으로 잘 표현되더군요.
혹시 필요하신 분 있을까 해서 올립니다.
Forums:
C언어로 금액 표시하기
좋은 팁입니다!!!
댓글 달기