Пусть задано некоторое положительное вещественное число. Требуется заменить в нём количество единиц на 0. Т.е., из числа, например, 123.456 получить число 120.456.
Текст программы:
static void Main(string[] args)
{
Console.Write("Введи вещественное число: ");
double a = double.Parse(Console.ReadLine());
int aa = (int)a; // откинули дробную часть
int k = aa % 10; // выделили последнюю цифру
a = a - k; // заменили число единиц нулём
Console.WriteLine("Результат обработки: {0}",a);
Console.ReadLine();
}
Запуск даёт
Попробуем, по аналогии, заменить цифрой 5 число сотен:
static void Main(string[] args)
{
Console.Write("Введи вещественное число: ");
double a = double.Parse(Console.ReadLine());
int aa = (int)a; // откинули дробную часть
int k = aa /100 % 10; // выделили число сотен
a = a - k * 100 + 500; // заменили число сотен пятёркой
Console.WriteLine("Результат обработки: {0}",a);
Console.ReadLine();
}
Если требуется занулить цифру справа от запятой (число десятых), то изменений в программе будет больше:
static void Main(string[] args)
{
Console.Write("Введи вещественное число: ");
double a = double.Parse(Console.ReadLine());
int aa = (int)(a*10); // откинули цифры после десятых
int k = aa % 10; // выделили число десятых
a = a - k / 10.0; // заменили число десятых нулём
Console.WriteLine("Результат обработки: {0}",a);
Console.ReadLine();
}
В данном примере значения промежуточных переменных будут:
aa=1234 k=4