none
таблицы в консоли RRS feed

  • Вопрос

  • как вывести ровную красивую таблицу в консоли которая от длинны величин выводимых в ней не становилась кривой?
    • Перемещено Siddharth Chavan 1 октября 2010 г. 21:58 MSDN Forums Consolidation (От:Visual C#)
    8 октября 2009 г. 10:41

Ответы

  • Устанавливать ограничения на выводимое под число место( в данном примере место из 7 пробелов=)):
                double Variable1 = 5.67899, Variable2 = 0.99; ;
                Console.WriteLine("{0,7}|{1,7}", Variable1, Variable2);
                Console.WriteLine("{0,7}|{1,7}", Variable2, Variable1);
    • Предложено в качестве ответа I.Vorontsov 8 октября 2009 г. 12:33
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    8 октября 2009 г. 12:33
  • В данном случае возможен такой вариант:
               
                double Variable1 = 5.67899, Variable2 = 0.99; ;
                int Size1 = 7,Size2=7;
                String String1 = "{0," + Size1 + "}|{1,"+ Size2 +"}";
                Console.WriteLine(String1, Variable1, Variable2);
                Console.WriteLine(String1, Variable2, Variable1);

    Где n1, n2 размеры, которые можно вычислить исходя из самого длинного числа.
    • Предложено в качестве ответа I.Vorontsov 8 октября 2009 г. 17:59
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    8 октября 2009 г. 17:59
  • Да таким образом:
    int n
    Console.WriteLine("{0,"+n + "}|{1,"+ n + "}", Variable1, Variable2);



    • Предложено в качестве ответа I.Vorontsov 14 октября 2009 г. 4:37
    • Изменено I.Vorontsov 14 октября 2009 г. 10:41
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    14 октября 2009 г. 4:37
  • Я так понял, что цифры надо обрубить в строке. Можно сделать так:
    Str = DoubleVar.ToString("0.000");
    Str = DoubleVar.ToString("0.0##");
    В первом случае в конце строки будет ровно 3 знака после точки/запятой (0.5 -> "0.500"), во втором случае будет от 1 до 3 знаков после запятой, в зависимости от количества значащих цифр (0.25 -> "0.25").
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    14 октября 2009 г. 15:47

Все ответы

  • Устанавливать ограничения на выводимое под число место( в данном примере место из 7 пробелов=)):
                double Variable1 = 5.67899, Variable2 = 0.99; ;
                Console.WriteLine("{0,7}|{1,7}", Variable1, Variable2);
                Console.WriteLine("{0,7}|{1,7}", Variable2, Variable1);
    • Предложено в качестве ответа I.Vorontsov 8 октября 2009 г. 12:33
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    8 октября 2009 г. 12:33
  •  а если мне нужно чтобы если число было больше отведенного места (пробелов) то таблица расширилась и не потеряла ровность

    8 октября 2009 г. 13:55
  • В данном случае возможен такой вариант:
               
                double Variable1 = 5.67899, Variable2 = 0.99; ;
                int Size1 = 7,Size2=7;
                String String1 = "{0," + Size1 + "}|{1,"+ Size2 +"}";
                Console.WriteLine(String1, Variable1, Variable2);
                Console.WriteLine(String1, Variable2, Variable1);

    Где n1, n2 размеры, которые можно вычислить исходя из самого длинного числа.
    • Предложено в качестве ответа I.Vorontsov 8 октября 2009 г. 17:59
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    8 октября 2009 г. 17:59
  • возможно ли в конструкцию
    double Variable1 = 5.67899, Variable2 = 0.99; ;
                Console.WriteLine("{0,7}|{1,7}", Variable1, Variable2);
                Console.WriteLine("{0,7}|{1,7}", Variable2, Variable1);
    вместо 7 написать n  и менять это число в зависимости от нужной величины?

    13 октября 2009 г. 19:35
  • Да таким образом:
    int n
    Console.WriteLine("{0,"+n + "}|{1,"+ n + "}", Variable1, Variable2);



    • Предложено в качестве ответа I.Vorontsov 14 октября 2009 г. 4:37
    • Изменено I.Vorontsov 14 октября 2009 г. 10:41
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    14 октября 2009 г. 4:37
  • и еще вопрос как нам число типа double перевести в строковый тип посчитать сколько в нем символов и "обрубить" справа сколько нужно?

    14 октября 2009 г. 10:11
  •             Str = Convert.ToString(DoubleVar); //конвертация в строковый тип
                Сharacters= Str.Length;                  //Количество символов
                DoubleVar = Math.Round(DoubleVar,n);//Округление числа, гдк n порядок округления

                ps Если сообщение является ответом, пожалуйста отметьте это...
    • Изменено I.Vorontsov 14 октября 2009 г. 15:56
    14 октября 2009 г. 10:41
  • Я так понял, что цифры надо обрубить в строке. Можно сделать так:
    Str = DoubleVar.ToString("0.000");
    Str = DoubleVar.ToString("0.0##");
    В первом случае в конце строки будет ровно 3 знака после точки/запятой (0.5 -> "0.500"), во втором случае будет от 1 до 3 знаков после запятой, в зависимости от количества значащих цифр (0.25 -> "0.25").
    • Помечено в качестве ответа I.Vorontsov 23 октября 2009 г. 6:38
    14 октября 2009 г. 15:47