Ваше решение находится всего в 2 шагах
- Разбор пользовательского ввода в десятичном формате
- Затем округление до 2 десятичных знаков
.cs
static void Main(string[] args)
{
//Parse User input
var inputValue = Console.ReadLine();
inputValue = inputValue.Split('%')[0]; //To handle the trailing % sign
decimal outputValue;
var style = NumberStyles.Any;
var culture = CultureInfo.InvariantCulture;
if (Decimal.TryParse(inputValue, style, culture, out outputValue))
Console.WriteLine("Converted '{0}' to {1}.", inputValue, outputValue);
else
Console.WriteLine("Unable to convert '{0}'.", inputValue);
//Rounding off 2 decimal places
var roundedValue = Math.Round(outputValue, 2);
Console.WriteLine(roundedValue);
Console.Read();
}
Примечание
Если вы заранее знаете, какую культуру вы ожидаете от своих вкладов, вы можете указать, что используя информацию о культуре
var culture = new CultureInfo("en-US");// or ("fr-FR")