Как вывести сокращение больших чисел -- проще? - C#
Формулировка задачи:
У меня есть некий класс принимающий большое число и возвращающий на выходе сокращенный вариант записи этого числа:
То как я это реализовал, мне не нравится, посоветуйте или помогите реализовать ToString() проще. Точнее, если делать как я, то дальше описывая варианты ZZZ, ZZZZ, ZZZZZ и т.д. мой ToString() дорастет до 200+ строк)), а ZZZZZZZZZZZZZZZZZ...
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())); } }
Решение задачи: «Как вывести сокращение больших чисел -- проще?»
textual
Листинг программы
else { string str = valueInt.ToString(); st = (a1 > 0 && str.Length > a1) ? str.Insert(a1, ",") : str; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д