Преобразование чисел
Приведения и методы Convert.
«Преобразование чисел» — бесплатный урок C# Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Зачем выполнять преобразование
Разные числовые типы не всегда можно свободно смешивать. Иногда необходимо преобразовать значение из одного типа в другой.
C# поддерживает неявные преобразования, явные приведения типов, класс Convert и разбор текста. В этом уроке рассматривается каждый из этих способов.
Неявное преобразование
Если целевой тип может вместить любое возможное значение исходного типа, C# выполняет неявное преобразование без дополнительного синтаксиса.
Значение типа int помещается в double, поэтому такое присваивание выполняется автоматически и безопасно.
int whole = 7;
double real = whole;
Console.WriteLine(real);Явное приведение типа
При преобразовании в обратную сторону данные могут быть потеряны, поэтому C# требует явного приведения с указанием целевого типа в скобках.
Приведение double к int отбрасывает дробную часть, двигаясь к нулю.
double price = 9.99;
int dollars = (int)price;
Console.WriteLine(dollars);Приведение может вызвать переполнение
Приведение значения, которое не помещается в целевой тип, может привести к неверному результату из-за переполнения.
При приведении большого значения типа long к int происходит циклический переход, поэтому всегда проверяйте, помещается ли значение в целевой тип.
long big = 3000000000;
int small = (int)big;
Console.WriteLine(small);Класс Convert
Класс System.Convert преобразует значения между типами с помощью таких методов, как Convert.ToInt32 и Convert.ToDouble.
В отличие от приведения типов, Convert.ToInt32 округляет значение double до ближайшего целого числа, а не отбрасывает дробную часть.
double value = 9.99;
int rounded = Convert.ToInt32(value);
Console.WriteLine(rounded);Разбор чисел из текста
Пользовательский ввод и файлы поступают в виде string. Используйте int.Parse или double.Parse, чтобы превратить текст в числа.
Текст должен содержать допустимое число, иначе при разборе будет создано исключение.
string text = "42";
int number = int.Parse(text);
Console.WriteLine(number + 8);Безопасный разбор с TryParse
int.TryParse пытается выполнить преобразование и возвращает true или false, вместо того чтобы создать исключение. Разобранное значение возвращается через параметр out.
Это безопасный способ обрабатывать ненадёжный ввод.
bool ok = int.TryParse("abc", out int result);
Console.WriteLine(ok);
Console.WriteLine(result);Преобразование чисел в строки
У каждого числового типа есть метод ToString, создающий текстовое представление. Можно передать строку формата, чтобы управлять видом результата.
"C"денежный формат"F2"фиксированный формат с 2 знаками после десятичного разделителя"N0"группировка разрядов тысяч
double amount = 1234.5;
Console.WriteLine(amount.ToString("F2"));
Console.WriteLine(amount.ToString("N0"));Преобразование int в double для деления
Частая причина для преобразования — необходимость избежать целочисленного деления. Приведите один операнд к типу double перед делением, чтобы сохранить знаки после десятичного разделителя.
Без приведения Вы получили бы усечённый результат в виде целого числа.
int scored = 7, total = 10;
double percent = (double)scored / total * 100;
Console.WriteLine(percent);Приведение, Convert или Parse
Выбирайте подходящий инструмент:
- Приведение между числовыми типами (отбрасывает дробную часть)
- Convert между многими типами (округляет и обрабатывает null)
- Parse / TryParse превращает текст в числа
Используйте TryParse для любого ввода, которым Вы не управляете.
Пример преобразования
Эта полноценная программа считывает число из текста, преобразует его, выполняет вычисления и форматирует результат как денежное значение.
string input = "19.95";
if (decimal.TryParse(input, out decimal price))
{
decimal withTax = price * 1.20m;
Console.WriteLine(withTax.ToString("F2"));
}Быстрая проверка
Выберите самый безопасный способ преобразовать введённый пользователем текст в число.
Повторение
Вы научились преобразовывать числа: выполнять неявные преобразования, когда это безопасно, использовать явные приведения (которые отбрасывают дробную часть и могут вызвать переполнение), класс Convert (который округляет) и разбирать текст с помощью Parse и более безопасного TryParse.
Вы также научились форматировать числа обратно в строки с помощью кодов формата ToString. Приводите один операнд к типу double, чтобы избежать целочисленного деления.
Часто задаваемые вопросы
Урок «Преобразование чисел» бесплатный?
Да — полный текст урока «Преобразование чисел» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Преобразование чисел»?
Приведения и методы Convert. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Преобразование чисел»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Числовые типы
- Арифметика и приоритет операторов
- Класс Math
- Преобразование чисел