Ответ 1
Вы можете передать формат в метод ToString
, например:
myFloatVariable.ToString("0.00"); //2dp Number
myFloatVariable.ToString("n2"); // 2dp Number
myFloatVariable.ToString("c2"); // 2dp currency
В настоящее время я создаю модуль продаж для веб-сайта клиентов. Пока у меня есть цена продажи, чтобы рассчитать отлично, но где я застрял, форматирует выход до 2 знаков после запятой.
В настоящее время я вызываю это в переменной, чтобы данные могли привязывать результаты к списку.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
Может ли кто-нибудь показать мне, как отформатировать вывод до 2 десятичных знаков? Большое спасибо!
Вы можете передать формат в метод 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)
Более сложный пример из Форматирование строк в С#:
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);
Это будет выдано "$ 1,240.00", если прошло 1243.50. Он выведет тот же формат, но в круглых скобках, если число отрицательно, и выведет строку "Zero", если число равно нулю.
Я верю:
String.Format( "{0: 0.00}", продажа);
Должно это сделать.
См. ссылку Примеры формата строк С#
string outString= number.ToString("####0.00");