Форматирование float до 2 знаков после запятой
в настоящее время я создаю модуль продаж для веб-сайта клиентов. До сих пор у меня есть цена продажи для идеального расчета, но там, где я застрял, форматирование вывода до 2 десятичных знаков.
в настоящее время я вызываю это в переменной, чтобы я мог привязать результаты к listview.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
может ли кто-нибудь показать мне, как форматировать выходные данные до 2 десятичных знаков?? Большое Спасибо!
6 ответов
вы можете передать формат в ToString
способ, например:
myFloatVariable.ToString("0.00"); //2dp Number
myFloatVariable.ToString("n2"); // 2dp Number
myFloatVariable.ToString("c2"); // 2dp currency
первое, что вам нужно сделать, это использовать decimal
типа вместо float
по ценам. Используя float
абсолютно неприемлемо для этого, потому что он не может точно представлять большинство десятичных дробей.
после этого, Decimal.Round()
может использоваться для округления до 2 мест.
String.Format("{0:#,###.##}", value)
более сложный пример форматирование строк в C#:
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);
это выведет " $1,240.00 " если прошло 1243.50. Он выведет тот же формат, но в круглых скобках, если число отрицательное, и выведет строку "ноль", если число равно нулю.
как уже упоминалось, вам нужно будет использовать форматированный результат; который все делается через Write()
, WriteLine()
, Format()
и ToString()
методы.
, что не было упомянуто-это формат фиксированной точки что позволяет использовать заданное количество знаков после запятой. Он использует "F", а число, следующее за "F", - это количество выведенных десятичных знаков, как показано в примерах.
Console.WriteLine("{0:F2}", 12); // 12.00 - two decimal places
Console.WriteLine("{0:F0}", 12.3); // 12 - ommiting fractions