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

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

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

У меня есть некий класс принимающий большое число и возвращающий на выходе сокращенный вариант записи этого числа:
Листинг программы
  1. public class ABCInt
  2. {
  3. private readonly BigIntTest valueInt;
  4. static string ABC = "ABCDEFGHIGKLMNOPQRSTUVWXYZ";
  5. //
  6. // --- // ---
  7. //
  8. public override string ToString()
  9. {
  10. List<char> ch = new List<char>(2);
  11. int a0 = valueInt.ToString().Length;
  12. int a1 = (a0 - 1) / 3 - 1;
  13. int a3 = a1 / ABC.Length;
  14. int a2 = a1 - ABC.Length * a3;
  15. if (a1 >= 0 && a3 < 1)
  16. {
  17. ch.Add(ABC[a1]);
  18. }
  19. if (a3 > 0)
  20. {
  21. ch.Add(ABC[a3 - 1]);
  22. ch.Add(ABC[a2]);
  23. }
  24. a1 = a0 % 3;
  25. string st = "";
  26. if (a1 == 0 && a0 < 4)
  27. st = valueInt.ToString();
  28. else
  29. {
  30. if (a1 == 1)
  31. st = string.Format("{0},{1}{2}", valueInt.ToString()[0], valueInt.ToString()[1], valueInt.ToString()[2]);
  32. if (a1 == 2)
  33. st = string.Format("{0}{1},{2}", valueInt.ToString()[0], valueInt.ToString()[1], valueInt.ToString()[2]);
  34. if (a1 == 0)
  35. st = string.Format("{0}{1}{2}", valueInt.ToString()[0], valueInt.ToString()[1], valueInt.ToString()[2]);
  36. }
  37. return string.Format("{0} {1}", st, new string(ch.ToArray()));
  38. }
  39. }
То как я это реализовал, мне не нравится, посоветуйте или помогите реализовать ToString() проще. Точнее, если делать как я, то дальше описывая варианты ZZZ, ZZZZ, ZZZZZ и т.д. мой ToString() дорастет до 200+ строк)), а ZZZZZZZZZZZZZZZZZ...

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

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

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


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

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

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы