0

我正在尝试将一个对象(来自 SQL 服务器)转换为一个整数,以便我可以格式化数字以使其前面有正确数量的零。

例如:

如果我有25.6,我需要它是0025.6

现在我在网上查看了如何做到这一点,但是我看到人们发布的方法对我不起作用。我不完全确定为什么。我正在尝试格式化GlobalVariables.grossweightafter. 我GlobalVariables.grossweight从 SQL 服务器读取了该值,但是当我读取TryParse它时,它就失去了它的价值。我的代码如下:

            while (TransferRecord.Read())
            {
                //Pulling data from the SQL server. getting data for every line of code as specified.
                GlobalVariables.baledate = TransferRecord["keyprinter_datetime"];
                GlobalVariables.baleline = TransferRecord["pulp_line_id"];
                GlobalVariables.baleid = TransferRecord["bale_id"];
                GlobalVariables.grossweight = TransferRecord["bale_gross_weight"];
                GlobalVariables.grossweightflag = TransferRecord["gross_value_flag"];
                GlobalVariables.baleairdrypercent = TransferRecord["bale_airdry_pct"];
                GlobalVariables.airdryflag = TransferRecord["airdry_value_flag"];

                //Converting the date, and the baleid to fit in the string.
                DateTime.TryParse(GlobalVariables.baledate.ToString(), out GlobalVariables.baledateafter);
                int.TryParse(GlobalVariables.baleid.ToString(), out GlobalVariables.baleidafter);

                int.TryParse(GlobalVariables.grossweight.ToString(), out GlobalVariables.grossweightafter);
                GlobalVariables.grossweightafter.ToString("0000.0");
                //Calling the WriteData method.
                WriteData();
            }

所以我想知道是否有人能发现我做错了什么,或者他们可以帮助我以正确的方式解决这个问题。

4

3 回答 3

2

@Hans Passant 所说的是您需要分配从 .ToString 返回的值。那行应该是:

GlobalVariables.grossweightafter = GlobalVariables.grossweightafter.ToString("0000.0");
于 2013-08-07T15:10:00.503 回答
2

最后几行应该是

if(int.TryParse(GlobalVariables.grossweight.ToString(), out GlobalVariables.grossweightafter))
{
    string grossWeightAfter = GlobalVariables.grossweightafter.ToString("0000.0");
    //you need to save the string returned from the ToString-method somewhere or it will be lost.
    ///Alternatively, if GlobalVariables can contain strings aswell:
    GlobalVariables.grossweightafter = GlobalVariables.grossweightafter.ToString("0000.0");
}
else
{
    //React on value not being an int
}
于 2013-08-07T15:18:23.403 回答
1

也许您应该尝试使用double.TryParse()method 而不是int.TryParse(),因为 int 没有小数部分?

此外,您需要将ToString()结果存储到字符串变量中。你的代码应该是这样的:

GlobalVariables.grossweightafterstring = GlobalVariables.grossweightafter.ToString("0000.0");
于 2013-08-07T15:23:16.480 回答