2011-04-30 5 views
1

C#에서 코드 Console.WriteLine("{0:c}", 998);은 기본값 "US-Language"설정에서 $998 출력을 제공합니다. 그러나 사용자 기호에 따라 통화 기호를 파운드, 스털링, 루피 또는 기타 통화 기호로 동적으로 변경하려면이 방법이 필요합니다. 말하자면, 메소드를 호출합니다.동적 통화 기호가있는 통화 서식

public void PrintInRightCurrencyFormat(decimal value, ICustomFormatter format) 
{ 
    Console.WriteLine(... ... ...); 
} 

그리고이 메소드는 값을 필수 형식으로 인쇄합니다.

한 가지 더 많은 점은 맞춤 통화 기호를 삽입 할 수있는 방법이 있다는 것입니다. 내 요점은 통화에 새로운 기호 (인도가 루피 기호와 같이)가있는 경우, 코드에서 바로 사용 가능하게하는 방법입니다.

감사합니다. 일부 사용자 환경에

Console.WriteLine(string.Format(new CultureInfo("en-GB"), "{0:c}", value)); 

하거나 설정된 현재 스레드의 문화와 그 값 인쇄 :

+3

당신은 CultureInfo''에 의해 할 수 있지만 필요 통화 변환을 돌보는 것; $ 50! = Rs 50 –

답변

3

당신은 문화를 사용할 수

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); 
Console.WriteLine("{0:c}", value); 
+3

+1 당신이 문화를 사용할 수있을뿐만 아니라 실제로 '해야합니다'! 나는 좀 더 일반적인 수준에서 문화를 바꿀 것을 권하고 싶다. 아마도'web.config' 나 Thread 수준에서 (http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture.aspx). 또한 통화는 반올림 차이로 인해'double '이 아닌'decimal'로 저장되어야합니다. – Bazzz

+0

답변 해 주셔서 감사합니다. 사전 정의 된 문화권 목록을 제공 할 수있는 링크를 제공 할 수 있습니까? –

+1

@Arnab Das, 여기 하나 있습니다 : http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx –