我在应用上有一个小标签,允许用户在价格表中查找价格并返回价格。我怎样才能得到' $'在退货价格上签字?
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;
}
答案 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 string。 C
指定该值应格式化为货币。
您还可以传入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();