Управление форматированием вывода при вводе данных - C#

Узнай цену своей работы

Формулировка задачи:

Вот такой код , ведется диалог с пользователем , пользователь вводит цифры
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. Console.Write("Введите сумму вклада : = ");
  4. decimal amountOfDeposit = decimal.Parse(Console.ReadLine());
  5. Console.Write("\nВведите процентную ставку\n по вкладу (%) (1,2 ...13,4 и т.д :) = ");
  6. decimal rateOfInterest = decimal.Parse(Console.ReadLine());
  7. Console.Write("\nВведите срок вклада (количество дней): days = ");
  8. decimal days = decimal.Parse(Console.ReadLine());
  9. Console.Write("\nВведите количество дней в году: numOfDaysYear = ");
  10. decimal numOfDaysYear = decimal.Parse(Console.ReadLine());
  11. decimal sumPersent = (amountOfDeposit * rateOfInterest * days) / (numOfDaysYear * 100);
  12. NumberFormatInfo formatInfo = new NumberFormatInfo(); // создаем объект (using System.Globalization; - пространство имен )
  13. formatInfo.CurrencySymbol = "руб."; // задаем символ для валюты (можно изменять по желанию)
  14. formatInfo.CurrencyPositivePattern = 3; // способ расположения символа (может принимать значения от 0 до 3)
  15. Console.WriteLine(String.Format(formatInfo, "\n Через {0,2} дней,\n к вашему вкладу начислят сумму : {1,25:C2}\n", numOfDaysYear, sumPersent));// используем String.Format, потому что он позволяет применить наш формат при выводе
  16. Console.ReadLine();
  17. }
Вот такая часть кода не позволяет управлять форматированием вывода данных, например сдвинуть значение вправо, разделить вводимое число по знакам , например

100000

записать как

100 000

Листинг программы
  1. Console.Write("Введите сумму вклада : = ");
  2. decimal amountOfDeposit = decimal.Parse(Console.ReadLine());
Для того, чтобы ввести дробное число требуется вводить "

,

" , точка не воспринимается почему-то (таким образом работа на правом цифровом блоке клавиатуры - неудобна, там точка не воспринимается как разделитель дробной части) Подскажите пожалуйста как можно решить данные вопросы ? Спасибо.

Решение задачи: «Управление форматированием вывода при вводе данных»

textual
Листинг программы
  1. using System;
  2. class Program
  3. {
  4.     static void Main()
  5.     {
  6.         ConsoleKeyInfo cki = new ConsoleKeyInfo();
  7.         string s="";
  8.         for (int i = 1; (cki = Console.ReadKey(true)).Key != ConsoleKey.Enter;)
  9.         {
  10.             if (cki.Key == ConsoleKey.Backspace && s.Length > 0)
  11.             {
  12.                 s = s.Substring(0, s.Length - 1);
  13.                 Console.Write("\b");
  14.                 i--;
  15.             }
  16.             if(char.IsDigit(cki.KeyChar))
  17.             {
  18.                 s += cki.KeyChar;
  19.                 Console.Write(cki.KeyChar);
  20.                 if (i % 3 == 0) Console.Write(" ");
  21.                 i++;            
  22.             }
  23.         }
  24.         int num = int.Parse(s);
  25.         Console.WriteLine("\n{0}",num);
  26.         Console.ReadKey(true);
  27.     }
  28. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы