如何在DataGridView中格式化带有max和min的数字十进制的列?

ch2*_*h2o 7 .net c# string datagridview winforms

我想格式化DataGridView中显示和捕获的小数位,我有一个最小小数位数和最大小数位数.例如:

If caught, "120.0" display "120.00"
If caught "120.01" display "120.01"
If caught "120,123" display "120,123"
If caught "120.1234" display "120.1234"
If caught "120.12348" display "120.1235" (round)
Run Code Online (Sandbox Code Playgroud)

在DataGridView列中,"txtcDecimal"具有属性(来自设计者)

txtcDecimal.DefaultCellStyle.Format = "N2";

txtcDecimal.DefaultCellStyle.Format = "0.00##";  // IS ANSWER. I do not work for an event that interfered
Run Code Online (Sandbox Code Playgroud)

掩码"0.00 ##"作为"n2"工作只得到2位小数,它正确舍入到两位小数但只是不喜欢我需要的东西(如我在示例中所示)

如何在不消耗大量资源的情况下以简单的方式完成这项工作?

谢谢harlam357和Tom Garske

har*_*357 18

要格式化2到4位小数,可以使用自定义格式字符串.

txtcDecimal.DefaultCellStyle.Format = "0.00##"
Run Code Online (Sandbox Code Playgroud)

再往前走......

public partial class Form1
{
   public Form1()
   {
      InitializeComponent();

      var list = new List<Data>();
      list.Add(new Data { Prop1 = 1, Prop2 = 1.2 });
      list.Add(new Data { Prop1 = 2, Prop2 = 1.234567 });

      dataGridView1.Columns.Add("Prop1", "Prop1");
      dataGridView1.Columns["Prop1"].DataPropertyName = "Prop1";
      dataGridView1.Columns.Add("Prop2", "Prop2");
      dataGridView1.Columns["Prop2"].DataPropertyName = "Prop2";
      dataGridView1.Columns["Prop2"].DefaultCellStyle.Format = "0.00##";
      dataGridView1.DataSource = list;
   }

   class Data
   {
      public int Prop1 { get; set; }
      public double Prop2 { get; set; }
   }
}
Run Code Online (Sandbox Code Playgroud)