如何在c#中验证DataGridView的十进制值为0.00

时间:2012-12-13 09:20:03

标签: c# datagridview

我正在验证我的文本框是否允许小数值为12.00,12.50。 我的代码是

double x;
double.TryParse(tb.Text, out x);
tb.Text = x.ToString("0.00");

它会在文本框中添加小数位。因此,我想将.00添加到我的特定单元格的数据网格视图单元格中。谢谢

4 个答案:

答案 0 :(得分:2)

我认为您需要在DataGridView单元格

中显示最多2个小数位的值

您可以尝试将列的DefaultCellStyle属性设置为N2(小数点后2位)

dataGridView1.Columns["YourColumn"].DefaultCellStyle.Format = "N2";

答案 1 :(得分:0)

private void dataGridView2_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
   {
       if (this.dataGridView2.Columns[e.ColumnIndex].Name == "Aidat")
       {
          string deger=(string)e.Value;
          deger = String.Format("{0:0.00}", deger);
       }
   }

答案 2 :(得分:0)

感谢 我用dataGridView1.Columns["YourColumn"].DefaultCellStyle.Format = "N"; 这很好,也很有效。

答案 3 :(得分:0)

以上答案已经足够好,但您也可以为同一任务设计自己的功能,以下功能将23转换为23.00,23.0至23.00,23。至23.00,23.1至23.10和23.11将保持原样,这只是解释逻辑的一个例子

//此函数用于将浮点值格式化为两位小数

    private string fn_decimal_formatting(float val)
    {
        String str = val.ToString();
        int pos = str.IndexOf('.');
        if (pos == -1) //IndexOf returns negative one if . does not found in the string
            str += ".00";
        else if (str.Length == pos + 1)
            str += "00";
        else if (str.Length == pos + 2)
            str += "0";
        else
        {
            int start = 0;
            int end = pos + 2;
            str = str.Substring(start, end + 1);
        }
        return str;            
    }