コード例 #1
0
        private static string FormatComplex(Complex cplx, TrigonometryMode trigonometryMode)
        {
            var sb = new StringBuilder();

            sb.Append("R: ");
            sb.Append(cplx.Real);
            sb.Append(" i: ");
            sb.Append(cplx.Imaginary);
            sb.Append("\r\n φ: ");
            switch (trigonometryMode)
            {
            case TrigonometryMode.DEG:
                sb.Append(Trigonometry.Rad2Deg(cplx.Phase));
                sb.Append(" °");
                break;

            case TrigonometryMode.GRAD:
                sb.Append(Trigonometry.Rad2Grad(cplx.Phase));
                sb.Append(" grad");
                break;

            case TrigonometryMode.RAD:
                sb.Append(cplx.Phase);
                sb.Append(" rad");
                break;
            }
            sb.Append(" ABS: ");
            sb.Append(cplx.Magnitude);
            return(sb.ToString());
        }
コード例 #2
0
        private static string FormatEnumerable(object o, TrigonometryMode trigonometryMode)
        {
            var sb   = new StringBuilder();
            var coll = (IEnumerable)o;

            int idx = 0;

            if (o is Array || o is IList)
            {
                foreach (var i in coll)
                {
                    sb.AppendFormat("{0} => ", idx);
                    if (i is Complex)
                    {
                        sb.Append(FormatComplex((Complex)i, trigonometryMode));
                    }
                    else
                    {
                        sb.Append(i.ToString());
                    }
                    sb.Append("\n");
                    ++idx;
                }
            }
            else
            {
                foreach (var i in coll)
                {
                    if (i is Complex)
                    {
                        sb.Append(FormatComplex((Complex)i, trigonometryMode));
                    }
                    else
                    {
                        sb.Append(i.ToString());
                    }
                    sb.Append("\n");
                }
            }

            return(sb.ToString());
        }
コード例 #3
0
        public static string DisplayString(object o, bool preferPrefixes, bool groupByThousands, TrigonometryMode trigonometryMode)
        {
            Type t = o.GetType();

            switch (t.Name)
            {
            case "Double":
            case "Single":
            case "Int32":
            case "Int16":
            case "Byte":
            case "SByte":
            case "UInt32":
            case "UInt64":
                return(FormatDouble(Convert.ToDouble(o), preferPrefixes, groupByThousands));

            case "Complex":
                return(FormatComplex((Complex)o, trigonometryMode));

            case "String":
                return((string)o);

            default:
                if (o is IEnumerable)
                {
                    return(FormatEnumerable(o, trigonometryMode));
                }
                else
                {
                    return(o.ToString());
                }
            }
        }