Как я могу отформатировать десятичное свойство к валюте

Я хочу отформатировать значение в методе считывания и возвратить форматированное значение валюты.

Это возможное, или сделайте я должен объявить свойство как строку и затем использовать string.format.

58
задан Dariusz Woźniak 13 August 2010 в 17:35
поделиться

5 ответов

Свойства могут возвращать все, что захотят, но для этого нужно будет вернуть правильный тип.

private decimal _amount;

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

Был задан вопрос ... что, если это десятичное число, допускающее значение NULL.

private decimal? _amount;

public string FormattedAmount
{
    get
    {
         return _amount == null ? "null" : string.Format("{0:C}", _amount.Value);
    }
}  
96
ответ дан 24 November 2019 в 18:44
поделиться

Вы можете использовать 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

См. Также:

4
ответ дан 24 November 2019 в 18:44
поделиться

Нижеследующее также будет работать, но вы не можете вставить получатель свойства decimal. Получатель свойства decimal может возвращать только десятичное число, для которого форматирование не применяется.

decimal moneyvalue = 1921.39m; 
string currencyValue = moneyvalue.ToString("C");
31
ответ дан 24 November 2019 в 18:44
поделиться

Возвращаемый формат будет ограничен объявленным вами типом возврата. Итак, да, вы можете объявить свойство как строку и вернуть отформатированное значение чего-либо. В "get" вы можете поместить любой код для извлечения данных, который вам нужен. Поэтому, если вам нужно получить доступ к некоторому числовому значению, просто поместите оператор возврата как:

    private decimal _myDecimalValue = 15.78m;
    public string MyFormattedValue
    {
        get { return _myDecimalValue.ToString("c"); }
        private set;  //makes this a 'read only' property.
    }
1
ответ дан 24 November 2019 в 18:44
поделиться

Десятичный тип не может содержать информацию о форматировании. Вы можете создать другое свойство, например FormattedProperty строкового типа, которое делает то, что вы хотите.

0
ответ дан 24 November 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: