it-roy-ru.com

Форматирование числа с плавающей точкой до 2 десятичных знаков

В настоящее время я создаю модуль продаж для веб-сайта клиентов. До сих пор у меня была идеальная цена продажи для расчета, но я застрял и отформатировал вывод в 2 десятичных знака.

В настоящее время я вызываю это в переменной, чтобы данные могли связать результаты с представлением списка.

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),

Может кто-нибудь показать мне, как отформатировать вывод в 2 десятичных знака ?? Большое спасибо!

177
Callum

Вы можете передать формат в метод ToString, например:

myFloatVariable.ToString("0.00"); //2dp Number

myFloatVariable.ToString("n2"); // 2dp Number

myFloatVariable.ToString("c2"); // 2dp currency

Стандартные строки формата чисел

411
WraithNath

Первое, что вам нужно сделать, это использовать тип decimal вместо float для цен. Использование float абсолютно неприемлемо для этого, поскольку оно не может точно представлять большинство десятичных дробей.

После этого можно использовать Decimal.Round() для округления до 2 мест.

41
Michael Borgwardt

String.Format("{0:#,###.##}", value)

Более сложный пример из Форматирование строк в C # :

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

Это выдаст «$ 1240,00», если пройдено 1243,50. Он выведет тот же формат, но в скобках, если число будет отрицательным, и выведет строку «Ноль», если число равно нулю.

35
alexandrul

Я верю:

String.Format ( "{0: 0,00}", Продажа);

Должен сделать это.

См. Link Примеры форматов строки C #

22
Bit
string outString= number.ToString("####0.00");
3
danyolgiax

Как уже упоминалось, вам нужно будет использовать форматированный результат; что все делается с помощью методов 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
0
Jackson