c # текстовое поле десятичное форматирование - PullRequest
7 голосов
/ 25 августа 2011

Я хочу, чтобы в моих текстовых полях, привязанных к полям сущности money (SqlServer), отображалось только два десятичных знака вместо четырех.

Я использую поля DevExpress textEdit и CalcEdit со следующим форматом отображения и редактирования: "#,##0.00#;(#,##0.00#)"; Но я всегда получаю четыре знака после запятой (нули).

Я использую ту же строку формата в Janus Grid, значения отображаются правильно.

Любая идея, спасибо.

Ответы [ 4 ]

5 голосов
/ 25 августа 2011

Я бы настоятельно рекомендовал использовать строки встроенного формата, где это возможно, например, N2.

string s = number.ToString("N2");

Воспользуйтесь кратким справочником по формату .NET Джона Шихана Шпаргалка, если сомневаетесь. Он содержит всю необходимую информацию о форматировании чисел и дат в .NET.

Элементы управления DevExpress обычно требуют от вас также указать, что вы форматируете (например, число, дату и т. Д.):

calcEdit.Properties.DisplayFormat.FormatType = FormatType.Numeric;
calcEdit.Properties.DisplayFormat.FormatString = "N2";

Если тип формата не указан, строка формата не будет применяться.

В TextEdit вместо этого вы должны указать маску.

textEdit.Properties.Mask.MaskType = MaskType.Numeric;
textEdit.Properties.Mask.EditMask = "N2";
4 голосов
/ 25 августа 2011

Используйте это:

например, у вас есть переменная с именем сумму.затем отформатируйте его следующим образом:

amount.ToString("###,###.00");

Это даст вам сумму в двух десятичных разрядах.

Надеюсь, это поможет.

3 голосов
/ 25 августа 2011

Попробуйте #,##0.00 - вам не нужен конечный символ "#".

0 голосов
/ 10 января 2013

Я обычно просто записываю новое отформатированное значение обратно в текстовое поле после его проверки.Таким образом, если это десятичное число с точностью до тысячных долей, то в проверенном обработчике события я записываю значение обратно в текст после того, как оно было проанализировано в число с плавающей точкой, как это.this.textbox1.Text = speed.ToString ("N3").

...