【问题标题】:Need to return the value with an Currency sign需要返回带有货币符号的值
【发布时间】:2012-03-30 20:16:42
【问题描述】:

我在一个应用上有一个小标签,允许用户在价格表中查找价格并返回价格。如何在退货价格上获得“$”符号?

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;
}

【问题讨论】:

  • doubles 不能有货币符号。
  • 得到价格后,将其转换为字符串并在前面加上美元符号。
  • 货币符号是一个格式问题,您只能格式化字符串。作为数据,它是一个数值。
  • 只是一个建议,但使用decimal 会比需要数学准确性的double 更好。

标签: c# asp.net silverlight-4.0


【解决方案1】:

当您在double(和许多其他类型)上调用ToString() 时,您可以传入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 来存储货币数据。

【讨论】:

    【解决方案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();
    

    【讨论】:

      【解决方案3】:

      你必须使用字符串

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-18
        • 2012-01-29
        • 2019-02-23
        • 2014-10-14
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        相关资源
        最近更新 更多