Два десятичных знака с использованием c #

decimal Debitvalue = 1156.547m;

decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:0.00}", Debitvalue));

Мне нужно получить только два десятичных знака, но с помощью этого кода я получаю 1156,547. Дайте мне знать, какой формат мне нужно использовать для отображения двух десятичных знаков.

 Anand25 мая 2012 г., 08:34
Math.Round будет работать, и даже ваш код будет работать. Я проверил с вашим кодом, и он работал нормально десятичное Debitvalue = Convert.ToDecimal ("1156.547"); десятичное DEBITAMT = Convert.ToDecimal (string.Format ("{0: 0.00}", Дебитное значение)); Console.WriteLine (DEBITAMT);

Ответы на вопрос(10)

есть другой подход

decimal decimalRounded = Decimal.Parse(Debitvalue.ToString("0.00"));

ИспользуйтеMath.Round() для округления до двух десятичных знаков

decimal DEBITAMT = Math.Round(1156.547m, 2);

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

someValue.ToString ("0,00", CultureInfo.InvariantCulture)

Только для отображения, свойствоString можно использовать следующим образом ..

double value = 123.456789;
String.Format("{0:0.00}", value);

С помощьюSystem.Math.Round. Это значение может быть присвоено другим или изменено как требуется ..

double value = 123.456789;
System.Math.Round(value, 2);

если вы хотите ВСЕГДА показывать два десятичных знака (даже если ваш номер имеет только один десятичный знак), является использование

yournumber.ToString("0.00");
Решение Вопроса

Math.Round()

 cjk09 февр. 2017 г., 13:22
@ Dragon - потому что преобразование числа в строку и обратно в число - это запах кода.
 Dragon09 февр. 2017 г., 14:51
ooh kk..то тогда я буду использовать вот так Math.round (Convert.todecimal (val), 2) ..
 Dragon08 февр. 2017 г., 13:36
почему бы не это Convert.ToDecimal (string.Format ("{0: F2}", Debitvalue)) ;, когда мы уже используем convert.todecimal в коде.

ющего String.format поможет:

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

это покажет число только с двумя десятичными разрядами.

Или, если вы хотите, чтобы отображался символ валюты, используйте следующее:

String.Format("{0:C}", Debitvalue)
 SvendK24 мая 2016 г., 15:04
На самом деле формат в первом из них будет "{0: .00}", если он хочет показать 2.10. С ## было бы 2.1.
 batmaci28 сент. 2016 г., 16:55
этот действительно не работает. округляется с 4.998 до 5, но OP хочет иметь 2 десятичных знака как 4.99

Я использу

decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:F2}", Debitvalue));

decimal.Round (десятичное значение, 2, MidpointRounding.AwayFromZero);

Ваш ответ на вопрос