2015-01-01 5 views
-2

Я пытаюсь взять строковый ввод TR и строку PMP конвертировать их в валюту, а затем умножить вместе, чтобы получить выход в валюте USD.Преобразование строкового типа в валюту в C#

 string SP; // Sales Price 

     string TR; //Total Revenue 

     string PMP; //Property management percentage 

     string PMF; //Property Management Monthly Fee 


     Console.WriteLine("What is the total rent revenue?"); 
     TR = Console.ReadLine(); 
     Console.WriteLine("what is the percentage you pay to property managment?"); 
     PMP = Console.ReadLine(); 
     Console.WriteLine("you will be buying {0}", PMF); 


     SP = Console.ReadLine(); 
     TR = Console.ReadLine(); 
     PMP = Console.ReadLine(); 
     PMF = string.Format("{TR:C,PMP:C}") <------- THIS IS WHERE I AM TRYING TO CONVERT AND MULTIPLY**** 

Любая помощь будет очень благодарна. Спасибо

PS Я не программист по профессии (в основном это сетевая инженерия и администратор сервера), это мои первые 20 часов в программировании.

+0

Рассмотрите возможность использования идентификаторов, таких как 'salesPrice',' totalRevenue' и т. д. вместо 'SP',' TR'. –

+1

Пожалуйста, это ваш второй вопрос. Получить и прочитать хорошую книгу. Программирование - это ремесло, вы не можете просто открыть редактор и изучить его без хорошего руководства. Этот сайт не является учебным сайтом. Это для конкретного вопроса. На ваш вопрос нужна книга, на которую можно ответить. Хорошая книга для начинающих. Это не позор, мы все начали там. – nvoigt

+0

достаточно справедливо. любые рекомендации по книге? – user162056

ответ

0

Если бы это был я, я бы начал с создания метода для получения действительного десятичного числа от пользователя (поскольку мы делаем это несколько раз, и он должен иметь некоторую обработку ошибок для случаев, когда пользователь вводит недействительные записи). Что-то вроде:

public static decimal GetDecimalFromUser(string prompt, 
    string errorMessage = "Invalid entry. Please try again.") 
{ 
    decimal value; 

    while (true) 
    { 
     if (prompt != null) Console.Write(prompt); 
     if (decimal.TryParse(Console.ReadLine(), out value)) break; 
     if (errorMessage != null) Console.WriteLine(errorMessage); 
    } 

    return value; 
} 

Тогда, я бы назвал этот метод, чтобы получить информацию от пользователя, сделать необходимый расчет (вы не указали формулу, поэтому я импровизировал), и выводить значение пользователь:

decimal totalRevenue = GetDecimalFromUser("Enter the monthly rent revenue: $"); 
decimal propMgmtPct = GetDecimalFromUser("Enter the percentage you pay " + 
    "for property management: "); 
decimal propMgmtFee = totalRevenue * propMgmtPct; 

Console.WriteLine("The monthly property management fee will be: {0}", 
    propMgmtFee.ToString("C2", CultureInfo.CreateSpecificCulture("en-US"))); 
0
  1. Синтаксис Format больше похож на string.Format("{0:C},{1:C}", TR, PMP).
  2. Вы можете форматировать только числовые типы, такие как decimal. Рассмотрим decimal.TryParse, чтобы узнать, как то, что вводил пользователь, выглядит как число, а затем отформатирует полученное число.
  3. Для умножения вам обязательно нужны числовые типы, например decimal, и вы используете символ звездочки * как оператор умножения.
Смежные вопросы