#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();
}
}
}