Как вывести копейки без целочисленного нуля

Должно выйти 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, иначе есть риск неточно провести валютные вычисления.

→ Ссылка