如何将int转换为double?
|
我在将int值转换为double时遇到麻烦。我知道我必须抛弃它们,而我正在尝试这样做。但是C#仍然给我一个将int转换为double的错误,并说我需要强制转换。也给我一个错误,试图获取值下的totalunits值。它说:\“ **不能在此范围中声明名为\'values \'的局部变量,因为它将赋予\'values \'不同的含义,该值已在父范围或当前范围中用于表示其他值我对此错误感到困惑,因为我也希望totalunits也更改值。somweone可以帮助我吗?
贾斯汀
这是我的一些代码:
//Get the Refurb_Rate for the day
private double GetRefurbRate()
{
string sql = \"\";
double Refurb_Rate = 0;
int totalRefurb = 0;
int totalUnits = 0;
string error_msg = \"\";
//Getting the value for sql for totalRefurb
sql = \"SELECT COUNT(distinct rp.repair_ord) \" +
\"FROM \" + schema + \".repair_part rp \" +
\"WHERE rp.repair_type = \'REFURB\' and rp.created_date > \'\" + DateTime.Now.ToString(\"d-MMM-yyyy\") + \"\' \";
while (true)
{
if (!myDb.RunSql(sql, true))
{
error_msg = \"DBError for getting Refurb Rate\";
break;
}
if (myDb.dbRdr.HasRows)
{
if (myDb.dbRdr.Read())
{
object[] values = new object[myDb.dbRdr.FieldCount];
myDb.dbRdr.GetValues(values);
Console.WriteLine(values[0].ToString());
totalRefurb = Convert.ToDouble(values[0].ToString());());// This is where convert to double error comes in.
//Getting the value from sql for totalUnits
sql = \"SELECT count(distinct rp.repair_ord) \" +
\"FROM \" + schema + \".repair_part rp \" +
\"WHERE rp.repair_type = \'REFURB\' and rp.ref_desig is null and rp.created_date > \'\" + DateTime.Now.ToString(\"d-MMM-yyyy\") + \"\' \";
while (true)
{
if (!myDb.RunSql(sql, true))
{
error_msg = \"DBError for getting Refurb Rate\";
break;
}
if (myDb.dbRdr.HasRows)
{
if (myDb.dbRdr.Read())
{
// This is where the values error comes in
object[] values = new object[myDb.dbRdr.FieldCount];
myDb.dbRdr.GetValues(values);
Console.WriteLine(values[1].ToString());
totalUnits = Convert.ToDouble(values[1].ToString());// This is where convert to double error comes in.
try
{
//Formula for Refurb Rate
Refurb_Rate = totalRefurb / totalUnits * 100;
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
break;
}
myDb.dbRdr.Close();
if (error_msg != String.Empty)
{
MessageBox.Show(error_msg, \"Get Refurb Rate\",
MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return Refurb_Rate;
}
}
}
}
没有找到相关结果
已邀请:
6 个回复
殿虫
至
或
如果要替换
的内容,则第一个;如果要声明自变量,则第二个。
坝镰补翔奋
的变量:
恋裂
问题已经回答。
凸晴
当然,如果将totalUnits实际声明为double而不是int,则效果更好。 关于其他错误 在此范围内无法声明名为\'values \'的局部变量,因为它将赋予\'values \'不同的含义,该值已在父范围或当前范围中用于表示其他含义。 这是一个棘手的错误,给很多人带来了麻烦。真正的问题是,无法在此范围内声明名为\'values \'的局部变量,因为它将赋予\'values \'不同的含义,该值已在父范围中用于表示其他内容。如果您处理该问题,那么编译错误就会消失。 换句话说,“值”是指在代码下移大约三分之一处声明的变量。您正试图在代码的一半以上创建另一个名为\“ values \”的变量。如果允许第二个声明,则相同的名称(\“ values \”)将引用此方法内的两个不同事物。
筷啸够对铅
窝头菊