2011-01-13 3 views
1

저는 기부 금액을 나타내는 십진 변수가 있습니다. 현재 나는 소위

DonationAmount.ToString("C"); 

이 다음과 같은 출력 (미국 로케일 주어진)

1 -> $1.00 
2 -> $2.00 
0.5 -> $0.50 

내가 처음이 예에 만족,하지만 원하는을 제공 같은 통화로 화면에 표시하고 "0.5"가 "50c"로 표시됩니다.

나의 현재 솔루션은 더 좋은 방법이되는 conditional-

if (DonationAmount > 1) 
    return (DonationAmount * 100m).ToString() + "c"; 
else 
    return DonationAmount.ToString("C"); 

함께?

답변

3

"50c"로 문자열 서식을 지정할 사용자 지정 형식 지정자 ("센트"라고 말함)를 제공 할 수 있습니다.

IFormatProvider 구현은 그리 어렵지 않습니다. 이 작업을 완료하면 String.Format() 또는 ToString()을 호출 할 때 매개 변수로 전달합니다.

여기의 예는 http://msdn.microsoft.com/en-us/library/system.iformatprovider.aspx 또는 여기 http://www.codeproject.com/KB/cs/custstrformat.aspx에서 찾을 수 있습니다.

public class StringFormatInfo : IFormatProvider, ICustomFormatter 
{ 
    ... 
} 

return number.ToString("{0:cents}", new StringFormatInfo()); 
관련 문제