Управление форматированием вывода при вводе данных - C#
Формулировка задачи:
Вот такой код , ведется диалог с пользователем , пользователь вводит цифры
Вот такая часть кода не позволяет управлять форматированием вывода данных, например сдвинуть значение вправо, разделить вводимое число по знакам , например Для того, чтобы ввести дробное число требуется вводить "
static void Main(string[] args) { Console.Write("Введите сумму вклада : = "); decimal amountOfDeposit = decimal.Parse(Console.ReadLine()); Console.Write("\nВведите процентную ставку\n по вкладу (%) (1,2 ...13,4 и т.д :) = "); decimal rateOfInterest = decimal.Parse(Console.ReadLine()); Console.Write("\nВведите срок вклада (количество дней): days = "); decimal days = decimal.Parse(Console.ReadLine()); Console.Write("\nВведите количество дней в году: numOfDaysYear = "); decimal numOfDaysYear = decimal.Parse(Console.ReadLine()); decimal sumPersent = (amountOfDeposit * rateOfInterest * days) / (numOfDaysYear * 100); NumberFormatInfo formatInfo = new NumberFormatInfo(); // создаем объект (using System.Globalization; - пространство имен ) formatInfo.CurrencySymbol = "руб."; // задаем символ для валюты (можно изменять по желанию) formatInfo.CurrencyPositivePattern = 3; // способ расположения символа (может принимать значения от 0 до 3) Console.WriteLine(String.Format(formatInfo, "\n Через {0,2} дней,\n к вашему вкладу начислят сумму : {1,25:C2}\n", numOfDaysYear, sumPersent));// используем String.Format, потому что он позволяет применить наш формат при выводе Console.ReadLine(); }
100000
записать как100 000
Console.Write("Введите сумму вклада : = "); decimal amountOfDeposit = decimal.Parse(Console.ReadLine());
,
" , точка не воспринимается почему-то (таким образом работа на правом цифровом блоке клавиатуры - неудобна, там точка не воспринимается как разделитель дробной части) Подскажите пожалуйста как можно решить данные вопросы ? Спасибо.Решение задачи: «Управление форматированием вывода при вводе данных»
textual
Листинг программы
using System; class Program { static void Main() { ConsoleKeyInfo cki = new ConsoleKeyInfo(); string s=""; for (int i = 1; (cki = Console.ReadKey(true)).Key != ConsoleKey.Enter;) { if (cki.Key == ConsoleKey.Backspace && s.Length > 0) { s = s.Substring(0, s.Length - 1); Console.Write("\b"); i--; } if(char.IsDigit(cki.KeyChar)) { s += cki.KeyChar; Console.Write(cki.KeyChar); if (i % 3 == 0) Console.Write(" "); i++; } } int num = int.Parse(s); Console.WriteLine("\n{0}",num); Console.ReadKey(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д