Как вывести сокращение больших чисел -- проще? - C#

Узнай цену своей работы

Формулировка задачи:

У меня есть некий класс принимающий большое число и возвращающий на выходе сокращенный вариант записи этого числа:
    public class ABCInt
    {
        private readonly BigIntTest valueInt;
        static string ABC = "ABCDEFGHIGKLMNOPQRSTUVWXYZ";
 
        //
        //         --- // ---
        //
        
        public override string ToString()
        {
            List<char> ch = new List<char>(2);
            int a0 = valueInt.ToString().Length;
            int a1 = (a0 - 1) / 3 - 1;
            int a3 = a1 / ABC.Length;
            int a2 = a1 - ABC.Length * a3;
            if (a1 >= 0 && a3 < 1)
            {
                ch.Add(ABC[a1]);
            }
            if (a3 > 0)
            {
                ch.Add(ABC[a3 - 1]);
                ch.Add(ABC[a2]);
            }
            a1 = a0 % 3;
            string st = "";
            if (a1 == 0 && a0 < 4)
                st = valueInt.ToString();
            else
            {
                if (a1 == 1)
                    st = string.Format("{0},{1}{2}", valueInt.ToString()[0], valueInt.ToString()[1], valueInt.ToString()[2]);
                if (a1 == 2)
                    st = string.Format("{0}{1},{2}", valueInt.ToString()[0], valueInt.ToString()[1], valueInt.ToString()[2]);
                if (a1 == 0)
                    st = string.Format("{0}{1}{2}", valueInt.ToString()[0], valueInt.ToString()[1], valueInt.ToString()[2]);
            }
            return string.Format("{0} {1}", st, new string(ch.ToArray()));
        }
     }
То как я это реализовал, мне не нравится, посоветуйте или помогите реализовать ToString() проще. Точнее, если делать как я, то дальше описывая варианты ZZZ, ZZZZ, ZZZZZ и т.д. мой ToString() дорастет до 200+ строк)), а ZZZZZZZZZZZZZZZZZ...

Решение задачи: «Как вывести сокращение больших чисел -- проще?»

textual
Листинг программы
            else
            {
                string str = valueInt.ToString();
                st = (a1 > 0 && str.Length > a1) ? str.Insert(a1, ",") : str;
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы