Суммы в долларах в C#

#c# #string-formatting #currency

#c# #форматирование строки #Валюта

Вопрос:

Я просмотрел несколько других сообщений, но, похоже, ничего не помогло. Итак, я пытаюсь получить код, который считывает текущий баланс, с фразой перед ним, с суммой в долларах. Вместо печати знака доллара его печать {0:C} . Я неправильно использую {0:C} ?

 namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            double TotalAmount;
            TotalAmount = 300.7   75.60;
            string YourBalance = "Your account currently contains this much money: {0:C} "   TotalAmount;
            Console.WriteLine(YourBalance);
            Console.ReadLine();
        }
    }
}
  

Ответ №1:

 string YourBalance = 
    string.Format("Your account currently contains this much money: {0:C} ",TotalAmount);
  

или использование интерполяции строк с C # 6.0

 string YourBalance = $"Your account currently contains this much money: {TotalAmount:C} ";
  

Комментарии:

1. Если вам не нужно записывать строку, а просто планируете выводить ее прямо на консоль, вы также можете использовать Console.WriteLine("Your account currently contains this much money: {0:C} ", TotalAmount);

2. Я попробовал первый, он сообщает мне «; ожидаемый» и «Ожидаемое имя метода» на YourBalance и «Не удается преобразовать группу методов «Формат» в «строку», не являющуюся типом делегирования. Вы намеревались вызвать метод?» вкл . Форматирование

3. О, я не думал об этом, мне не нужно, чтобы строка сохранялась, просто вывод. Спасибо за помощь

Ответ №2:

Вы очень близки! Вам нужно использовать string.Format() :

 string YourBalance = string.Format(
    "Your account currently contains this much money: {0:C} ", TotalAmount);
  

{0:C} Синтаксис не означает ничего вне контекста метода Format .

Вот рабочая скрипка из вашего примера: Скрипка

Ответ №3:

Я неправильно использую {0:C}?

Да, это так. Вы просто объединяете строку и TotalAmount . Следовательно, даже если вы использовали спецификатор формата валюты ( {0:C} ), сумма валюты не заменяла спецификатор.

Вам нужно использовать String.Format() , например, так:

 string YourBalance = String.Format("Your account currently contains this much money: {0:C}", TotalAmount);
  

Ответ №4:

Вы можете использовать это…

 using System.Globalization;

namespace ConsoleApplication
{
   class Program
   {
       static void Main(string[] args)
       {
            double TotalAmount;
            TotalAmount = 300.7   75.60;
            string YourBalance = "Your account currently contains this much money: "  
                           string.Format(new CultureInfo("en-US"), "{0:C}",TotalAmount);
            Console.WriteLine(YourBalance);
            Console.ReadLine();
        }
    }
}