两种显示小数的方法

时间:2010-10-03 23:48:34

标签: c# types

假设我有一个小数列表:

List<decimal> values;

和2用于显示小数的函数:

string DisplayPct(decimal pct)
{
   return pct.ToString("0.00 %");
}

string DisplayValue(decimal val)
{
   return val.ToString("0.00");
}

实现的最佳机制是什么,所以我可以知道根据值调用哪个函数?

我本来希望在C#中使用例如typedef。这样,我可以声明一个类型Percent和一个Decimal类型,它们都代表十进制值,但后来我知道如何根据它的类型显示值。

C#中的任何等价物?

由于

3 个答案:

答案 0 :(得分:3)

以下是我的课程:

    public class Percent
    {
        public decimal value;
        public Percent(decimal d) { value = d; }
        public static implicit operator Percent(decimal d) { return new Percent(d); }
        public static implicit operator decimal(Percent p) { return p.value; }
    }
    public class DecimalPrecise
    {
        public decimal value;
        public DecimalPrecise(decimal d) { value = d; }
        public static implicit operator DecimalPrecise(decimal d) { return new DecimalPrecise(d); }
        public static implicit operator decimal(DecimalPrecise d) { return d.value; }
    }

答案 1 :(得分:2)

听起来你想要两个类:小数和百分比。每个都有一个适当打印的ToString。如果它们都具有相同的接口,则可以使用该公共接口在List中集合两者。

答案 2 :(得分:2)

在课堂上包裹百分比。你的一些工作。只需确保定义implicit operator以捕获小数,并根据需要定义一些其他操作和ToString。