Необходимо вернуть значение со знаком валюты - PullRequest
1 голос
/ 31 марта 2012

У меня есть небольшая вкладка в приложении, которая позволяет пользователю искать цену в таблице цен и возвращает цену. как я могу получить знак «$» на возвращенной цене?

public double? SearchMedicinePrice(Int64 pNDC)
{
    double? retValue = null;
    objConext = new FDBEntities();
    Medicine objMedicine = objConext.Medicines.Where(med => med.PriceType == 9 && med.NDC == pNDC).OrderByDescending(item=>item.MedicineID).FirstOrDefault();
    if (objMedicine != null)
    {
        retValue = objMedicine.Price;
    }
    return retValue;
}

Ответы [ 3 ]

6 голосов
/ 31 марта 2012

Когда вы вызываете ToString() для double (и многих других типов), вы можете передать в строку формата , чтобы указать, как результат должен быть отформатирован. Как это:

double price = 10.5;
price.ToString("C");

Выход = $10.50

Вы также можете использовать String.Format , например:

string message = String.Format("The price is {0:C}", SearchMedicinePrice(pndc));

{0:C} - строка формата . C указывает, что значение должно быть отформатировано как валюта.

Вы также можете передать объект CultureInfo для настройки таких вещей, как символ валюты. Например, следующий код выведет £10.50

10.5.ToString("C", new CultureInfo("en-GB"))

Вы также можете использовать десятичное вместо double для хранения данных валюты.

2 голосов
/ 31 марта 2012

Вы можете построить небольшой объект:

public class Currency {
    public double Amount {get;set;}
    public string Symbol {get;set;}
    public override string ToString() {
        return String.Format(Symbol + "{0}",Amount);
    }

}


public Currency SearchMedicinePrice(Int64 pNDC) {
    Currency retValue = null;
    objConext = new FDBEntities();
    Medicine objMedicine = objConext.Medicines.Where(med => med.PriceType == 9 && med.NDC == pNDC).OrderByDescending(item=>item.MedicineID).FirstOrDefault();
    if (objMedicine != null)
    {
        retValue.Amount = objMedicine.Price;
        retValue.Symbol = objMedicine.CurrencySymbol;
    }
    return retValue;
}

Затем, чтобы использовать его:

Label1.Text = SearchMedicinePrice(pNDC).ToString();
0 голосов
/ 31 марта 2012

Вы должны использовать строку

string str="$"+SearchMedicinePrice(x).ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...