Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C ASCX模块DataGrid不显示MySQL工作台数据库表中小数点后2位的值_C#_Asp.net_Mysql Workbench - Fatal编程技术网

C# C ASCX模块DataGrid不显示MySQL工作台数据库表中小数点后2位的值

C# C ASCX模块DataGrid不显示MySQL工作台数据库表中小数点后2位的值,c#,asp.net,mysql-workbench,C#,Asp.net,Mysql Workbench,我在MySQL数据库表中有一组数据,我正试图使用C在ascx模块的DataGrid中显示这些数据。数据库表中的值以浮点形式存储。当我将数据库表中的数据显示到我的DataGrid中时,我遇到了一个问题,即如果数据库中的值为3.30,我的DataGrid将显示为3.3。我希望DataGrid中的值显示为小数点后2位。如果数据库表显示值3.00,我希望在DataGrid表中也显示相同的值 我在网上和stackoverflow上做了大量的搜索。我确实发现了一些类似的问题,比如,但这对我想做的事情没有帮助

我在MySQL数据库表中有一组数据,我正试图使用C在ascx模块的DataGrid中显示这些数据。数据库表中的值以浮点形式存储。当我将数据库表中的数据显示到我的DataGrid中时,我遇到了一个问题,即如果数据库中的值为3.30,我的DataGrid将显示为3.3。我希望DataGrid中的值显示为小数点后2位。如果数据库表显示值3.00,我希望在DataGrid表中也显示相同的值

我在网上和stackoverflow上做了大量的搜索。我确实发现了一些类似的问题,比如,但这对我想做的事情没有帮助

下面是我的ascx和ascx.cs的代码。如有任何帮助,我们将不胜感激

ascx码

ascx.cs代码


您似乎使用了错误的DataFormatString值。。。下面的内容应该会让你开始

DataFormatString={0:0.00}

你可以看到更多

更新

看起来这可能与你的.ToString有关;它不实现可附加的

使用string.Format。。。如下所示,这将为您提供所需的结果:

static void Main(string[] args)
{
    double test = 3.00;
    Console.WriteLine("number: " + test);

    Console.WriteLine("new number: " + string.Format("{0:0.00}", test));
    Console.ReadLine();
}
输出:

因此,您的问题似乎在于这一行,它会在将0发送到网格之前自动截断0:

r[0] = tbl.Columns[col].ToString();

我尝试了你的建议,但没有任何效果,值仍然显示为3,而不是我想要的3.00。有没有一种方法可以强制零显示在屏幕上,这样3就被强制显示为3.00?那么,当您单步执行代码时会发生什么?r[0]=tbl.Columns[col].ToString是什么意思;在那行执行之后是什么样子?上面的代码明确地保留了来自数据库的float、double等的两个小数,我刚刚能够用3.00的值来确认这一点。那也很可能是你的罪魁祸首,我让它起作用了。我必须更改r[0]=tbl.Columns[col].ToString;to r[0]=tbl.Columns[col].只读;然后将值显示为2个十进制值。@skaur如果删除。只读也可以。只是.ToString部分删除了它们。该解决方案可能适用于其他人,但当我在应用程序中尝试时,它抛出了一个错误。因此,就我而言,似乎我需要使用.ReadOnly,但感谢您的帮助,它确实帮助我解决了我的问题。
static void Main(string[] args)
{
    double test = 3.00;
    Console.WriteLine("number: " + test);

    Console.WriteLine("new number: " + string.Format("{0:0.00}", test));
    Console.ReadLine();
}
number: 3
new number: 3.00
r[0] = tbl.Columns[col].ToString();