需要使用货币符号返回值

时间:2012-03-30 20:16:43

标签: c# asp.net silverlight-4.0

我在应用上有一个小标签,允许用户在价格表中查找价格并返回价格。我怎样才能得到' $'在退货价格上签字?

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 个答案:

答案 0 :(得分:6)

当您在ToString()(以及许多其他类型)上调用double时,您可以传入format string以指定格式化结果的方式。像这样:

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

输出= $10.50

你也可以像这样使用String.Format

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

{0:C}format stringC指定该值应格式化为货币。

您还可以传入CultureInfo对象来配置货币符号等内容。例如,以下代码将输出£10.50

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

您也可以考虑使用decimal代替double来存储货币数据。

答案 1 :(得分:2)

您可以构建一个小对象:

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();

答案 2 :(得分:0)

你必须使用字符串

string str="$"+SearchMedicinePrice(x).ToString();