Esempio n. 1
0
        public static string ExTypToString(NumberExType ty, NumberExType ty2 = NumberExType.Undefined)
        {
            if (ty2 != NumberExType.Undefined)
            {
                return(string.Format("{0}/{1}", ExTypToString(ty, NumberExType.Undefined), ExTypToString(ty2, NumberExType.Undefined)));
            }
            string res;

            if (Pullenti.Ner.Core.Internal.NumberExHelper.m_NormalsTyps.TryGetValue(ty, out res))
            {
                return(res);
            }
            return("?");
        }
Esempio n. 2
0
        public double NormalizeValue(ref NumberExType ty)
        {
            double       val = RealValue;
            NumberExType ety = ExTyp;

            if (ty == ety)
            {
                return(val);
            }
            if (ExTyp2 != NumberExType.Undefined)
            {
                return(val);
            }
            if (ty == NumberExType.Gramm)
            {
                if (ExTyp == NumberExType.Kilogram)
                {
                    val *= 1000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Milligram)
                {
                    val /= 1000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Tonna)
                {
                    val *= 1000000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Kilogram)
            {
                if (ExTyp == NumberExType.Gramm)
                {
                    val /= 1000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Tonna)
                {
                    val *= 1000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Tonna)
            {
                if (ExTyp == NumberExType.Kilogram)
                {
                    val /= 1000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Gramm)
                {
                    val /= 1000000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Millimeter)
            {
                if (ExTyp == NumberExType.Santimeter)
                {
                    val *= 10;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Meter)
                {
                    val *= 1000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Santimeter)
            {
                if (ExTyp == NumberExType.Millimeter)
                {
                    val *= 10;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Meter)
                {
                    val *= 100;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Meter)
            {
                if (ExTyp == NumberExType.Kilometer)
                {
                    val *= 1000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Litr)
            {
                if (ExTyp == NumberExType.Millilitr)
                {
                    val /= 1000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Millilitr)
            {
                if (ExTyp == NumberExType.Litr)
                {
                    val *= 1000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Gektar)
            {
                if (ExTyp == NumberExType.Meter2)
                {
                    val /= 10000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Ar)
                {
                    val /= 100;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Kilometer2)
                {
                    val *= 100;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Kilometer2)
            {
                if (ExTyp == NumberExType.Gektar)
                {
                    val /= 100;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Ar)
                {
                    val /= 10000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Meter2)
                {
                    val /= 1000000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Meter2)
            {
                if (ExTyp == NumberExType.Ar)
                {
                    val *= 100;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Gektar)
                {
                    val *= 10000;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Kilometer2)
                {
                    val *= 1000000;
                    ety  = ty;
                }
            }
            else if (ty == NumberExType.Day)
            {
                if (ExTyp == NumberExType.Year)
                {
                    val *= 365;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Month)
                {
                    val *= 30;
                    ety  = ty;
                }
                else if (ExTyp == NumberExType.Week)
                {
                    val *= 7;
                    ety  = ty;
                }
            }
            ty = ety;
            return(val);
        }
Esempio n. 3
0
 internal NumberExToken(Pullenti.Ner.Token begin, Pullenti.Ner.Token end, string val, Pullenti.Ner.NumberSpellingType typ, NumberExType exTyp = NumberExType.Undefined) : base(begin, end, val, typ, null)
 {
     ExTyp = exTyp;
 }