Если number
является обнуляемым (например, decimal?
) в вашем коде C #, вы можете использовать оператор null-coalescing в качестве замены для ||
:
number = number ?? 0;
Поскольку C # является языком со строгой типизацией, вам не придется беспокоиться о любых произвольных типах, передаваемых как в JS.Вы можете объявить параметр places
как int?
, а затем просто сделать:
places = places.HasValue ? Math.Abs(places.Value) : 2;
Вы также должны иметь в виду, что для standard уже есть много встроенных функций.и пользовательское форматирование в C #, включая определенный спецификатор формата валюты , так что вы можете захотеть взглянуть на это.
Пример:
static string FormatMoney(decimal number, int places, string symbol, string thousand, string @decimal, int alignment)
{
var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.CurrencyGroupSeparator = thousand;
nfi.CurrencyDecimalSeparator = @decimal;
nfi.CurrencyDecimalDigits = places;
nfi.CurrencySymbol = symbol;
nfi.CurrencyPositivePattern = alignment;
return number.ToString("C", nfi);
}
decimal value = 123456.789m;
Console.WriteLine(FormatMoney(value, 2, "$", ",", ".", 0));
// OUTPUT:
// $123,456.79