Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Функция ToString()


Автор: Bio 14.2.2008, 13:40
Разработать функцию преобразования целого числа в строку. Использовать библиотечную ф-ю ToString() -  нельзя.

Автор: Bogdan1024 14.2.2008, 13:58
И что, неужели это сложно сделать?
Разбиваешь число на цифры, и для каждой цифры в switch() пишешь соответствующий ей строчный символ. Их всех склеиваешь.

Автор: Bio 14.2.2008, 14:07
Цитата

Разбиваешь число на цифры


Как?

Автор: QryStaL 14.2.2008, 15:34
Код

    public static string IntToString(int input)
    {
        if (input == 0)
        {
            return "0";
        }
        int k = (input < 0) ? Math.Abs(input) : input;
        List<int> result = new List<int>(); 
        int i = (int)Math.Floor(Math.Log10(k));
        for (int j = i; j >= 0; j--)
        {
            int tmp = (int)Math.Floor(k / Math.Pow(10, j));
            k -= tmp * (int)Math.Pow(10, j);
            result.Add(tmp);
        }
        string toReturn = string.Empty;
        char[] digits = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        foreach (int number in result)
        {
            toReturn += digits[number];
        }
        if (input < 0)
        {
            toReturn = "-" + toReturn;
        }
        return toReturn;
    }


Добавлено через 2 минуты и 51 секунду
Хотя проще сделать так:

Код

    public static string IntToString2(int input)
    {
        return String.Format("{0}", input);
    }


 smile 

Автор: Bio 14.2.2008, 17:22
Благодарю. Не плохой вариант.

Автор: Exception 14.2.2008, 22:27
Цитата(QryStaL @  14.2.2008,  16:34 Найти цитируемый пост)
return String.Format("{0}", input);


+1, жгуче.

Автор: Mephisto 19.11.2008, 17:42
Цитата(Exception @  14.2.2008,  23:27 Найти цитируемый пост)
+1, жгуче. 

правда все-равно неявно ToString вызывается. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)