{
var nfi = GetNumberFormatInfo(true);
if (Math.Abs(input) < 0.01) input = 0;
return string.Format(nfi, @"{0:C}", input);
}
public static string FormatPriceWithKopek(this double input)
{
var nfi = GetNumberFormatInfo();
if (Math.Abs(input) < 0.01) input = 0;
return string.Format(nfi, @"{0:C}", input);
}
public static string FormatPriceWithoutKopek(this double input)
{
var nfi = GetNumberFormatInfo();
if (Math.Abs(input) < 0.01) input = 0;
return string.Format(nfi, "{0:C0}", Math.Round(input));
}
static NumberFormatInfo GetNumberFormatInfo(bool groupSeparator = false, int decimalDigits = 2)
{
var nfi = (NumberFormatInfo)new CultureInfo(@"ru").NumberFormat.Clone();
nfi.CurrencySymbol = GetCurrency().TrimStart();
nfi.NumberDecimalDigits = decimalDigits;
nfi.CurrencyDecimalDigits = decimalDigits;
nfi.NumberGroupSeparator = groupSeparator ? @" " : @"";
nfi.CurrencyGroupSeparator = groupSeparator ? @" " : @"";
nfi.NumberDecimalSeparator = @",";
nfi.CurrencyDecimalSeparator = @",";
nfi.NegativeInfinitySymbol = @"– ";
nfi.NegativeSign = @"– ";
return nfi;
}
Ну и сделать конвертер, который будет возвращать строку, которая будет выдана этими методами из числа
Спасибо, нечто подобное я юзаю. Думал, может есть какой-то стандартный вариант
Обсуждают сегодня