В настоящее время я создаю модуль продаж для веб-сайта клиентов. До сих пор у меня была идеальная цена продажи для расчета, но я застрял, отформатировав вывод в 2 десятичных знака.
В настоящее время я вызываю это в переменной, чтобы данные могли связать результаты с представлением списка.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
Может кто-нибудь показать мне, как отформатировать вывод в 2 десятичных знака ?? Большое спасибо!
c#
variables
floating-point
decimal
Каллум
источник
источник
Ответы:
Вы можете передать формат в
ToString
метод, например:Строки стандартного числового формата
источник
Первое, что вам нужно сделать, это использовать
decimal
тип вместоfloat
цен. Использованиеfloat
абсолютно неприемлемо для этого, потому что оно не может точно представлять большинство десятичных дробей.Как только вы это сделали,
Decimal.Round()
можно использовать для округления до 2 мест.источник
String.Format("{0:#,###.##}", value)
Более сложный пример из String Formatting в C # :
источник
Я считаю:
Должен сделать это.
См. Примеры форматов строк ссылок C #
источник
источник
Как уже упоминалось, вам нужно будет использовать форматированный результат; который все это делается через
Write()
,WriteLine()
,Format()
иToString()
методы.То, что не было упомянуто, является форматом с фиксированной запятой, который учитывает определенное количество десятичных знаков. Он использует «F», а число после «F» - это количество выводимых десятичных разрядов, как показано в примерах.
источник
Это для случаев, когда вы хотите использовать интерполированные строки . На самом деле я пишу об этом, потому что устал от проб и ошибок и, в конечном итоге, прокручиваю тонны документов каждый раз, когда мне нужно отформатировать скаляр.
Предупреждение о производительности
Интерполированные строки медленные. По моему опыту это порядок (от быстрого к медленному):
value.ToString(format)+" blah blah"
string.Format("{0:format} blah blah", value)
$"{value:format} blah blah"
источник