Как вывести копейки без целочисленного нуля
Должно выйти 12Р 35коп.
И желательно как можно меньше строк в коде. Заранее благодарю!
double n = 12.348;
var str = string.Format("{0,-6:C0}{1:f2} коп.",n,n%1);
Console.WriteLine(str);
выводит:
$12 0.35 коп.
как сделать что бы выводило:
$12 35 коп.
?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Строки настраиваемых числовых форматов.
var str = string.Format("{0,-6:N0}{1:00} коп.", n, n * 100 % 100);
Или даже так
var str = $"{n,-6:N0}{n * 100 % 100:00} коп.";
12 35 коп.
Но вообще вывод валюты делается так
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru-RU");
var str = $"{n:C2}";
Или для .NET 6 можно так
var str = string.Create(CultureInfo.GetCultureInfo("ru-RU"), $"{n:C2}");
12,35 ₽
Кстати double n, для валюты используйте decimal, иначе есть риск неточно провести валютные вычисления.