ProgramingTip

십진수 속성을 통화로 포맷하는 방법

bestdevel 2020. 12. 14. 20:37
반응형

십진수 속성을 통화로 포맷하는 방법


getter에서 값의 형식을 지정하고 형식이 지정된 통화 값을 반환하고 싶습니다.

어느 곳에서 선택할 수 있습니까?


속성은 원하는 것을 반환 할 수 있습니다.

private decimal _amount;

public string FormattedAmount
{
    get { return string.Format("{0:C}", _amount); }
}

질문이 있습니다. 만약 그것이 nullable 10 진수라면 어떨까요?

private decimal? _amount;

public string FormattedAmount
{
    get
    {
         return _amount == null ? "null" : string.Format("{0:C}", _amount.Value);
    }
}  

아래에서는 작동하지만 소수 속성의 getter를 넣을 수 없습니다. 십진수 속성의 getter는 서식이 적용되지 않습니다.

decimal moneyvalue = 1921.39m; 
string currencyValue = moneyvalue.ToString("C");

이 시도;

  string.Format(new CultureInfo("en-SG", false), "{0:c0}", 123423.083234);

123423.083234를 $ 1,23,423 형식으로 변환합니다.


String.Format을 사용할 수 있습니다. [ How-to Geek 를 통해 ] 코드를 참조하십시오 .

decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);
// Output: $1,921.39

또한,


확장 방법을 만들 수 있습니다. 브라우저 설정에 관계없이 통화 표시를 잠 가야 할 수 있으므로 좋은 방법이라고 생각합니다. 예를 들어 $ 5,000,00 $ 대신 항상 $ 5,000.00을 표시 할 수 있습니다 (#CanadaProblems).

public static class DecimalExtensions
{
    public static string ToCurrency(this decimal decimalValue)
    {
        return $"{decimalValue:C}";
    }
}

이제 C # 6에서 공유하는 보간 및 식 본문 속성을 사용할 수 있습니다.

private decimal _amount;

public string FormattedAmount => $"{_amount:C}";

반환 된 형식은 선언 한 반환 유형에 따라 제한됩니다. 예, 속성을 선언하고 형식이 지정된 값을 반환 할 수 있습니다. "get"에 필요한 데이터 검색 코드를 입력 할 수 있습니다. 따라서 일부 숫자 값에 액세스해야하는 경우 문을 다음과 같이 입력하면됩니다.

    private decimal _myDecimalValue = 15.78m;
    public string MyFormattedValue
    {
        get { return _myDecimalValue.ToString("c"); }
        private set;  //makes this a 'read only' property.
    }

10 진수 유형은 형식화 정보를 포함 할 수 없습니다. 원하는 작업 FormattedProperty을 수행 할 수있는 동일한 유형과 다른 속성을 만들 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/3479284/how-can-i-format-decimal-property-to-currency

반응형