2014-02-05 2 views
2

Google에서 보았 듯이 문자열에 int 또는 decimal로 많은 구현이 있지만 문자열에는 없습니다. 예를 들어숫자 문자열을 다른 숫자 문자열로 포맷하십시오.

:

decimal d1 = 32221.0210m; 
Console.WriteLine(d1.ToString("#,###.00")); 

이 작동하지만 문제는 내가 문자열을 가지고 있고이 숫자에 캐스팅하지 않을 것입니다.

string str = "32221.0210"; 

나는이 원하는 :

str = "32,221.02"; 

가능 (캐스팅없이)이 있습니까?

캐스팅하지 않을 이유가 있는지 물어 보는 사람들을 위해 : 예. 문자열을받는 인프라를 사용하고 있습니다. 인프라 팀은 날짜 등의 다른 값을받을 수도 있기 때문에 10 진수로 변환하지 않으려합니다. 더 나쁜 경우 TryParse 십진수를 사용할 수 있으므로 확실히 작동하는지 확인합니다. 그러나 지금은 위에서 쓴 것처럼 문자열을 문자열로 파싱하려고합니다.

+0

대화를 사용하지 않는 어떤 특별한 이유가 있습니까? –

+0

string.Format() (http://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx)을 사용해 보셨습니까? – Johnny

+1

왜 숫자 값으로 변환하지 않으시겠습니까? –

답변

0

형, 소수의 임시 VAR : 사전에

감사가 필요합니다

decimal d; 
string str = decimal.TryParse("32221.0210", out d)? string.Format("{0:#,##0.00}", d):string.Empty; 
관련 문제