C# 正在尝试将字符串转换为双精度

C# 正在尝试将字符串转换为双精度,c#,string,datatable,double,C#,String,Datatable,Double,我有两个来自数据库的值,我需要将这些值转换成double,我已经这样做了 我刚才提到过,就像局部变量一样 string val; string dpayment; 我通过以下查询从数据库中获取值 if (dt != null) { if (dt.Rows.Count > 0) { dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]).To

我有两个来自数据库的值,我需要将这些值转换成double,我已经这样做了 我刚才提到过,就像局部变量一样

            string val;
            string dpayment;
我通过以下查询从数据库中获取值

  if (dt != null)
  {
    if (dt.Rows.Count > 0)
    {


        dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]).ToString("0.00");

     val= Convert.ToInt32( dt.Rows[3]["value"]).ToString();       
    }
  }
我正在使用这些值并像这样进行操作

                 double eqvperiod = Convert.ToDouble(val / dpayment).ToString();
但这是一个错误

运算符“/”不能用作string和string类型的操作数

任何人都可以在这方面提供帮助


我的最终结果是,我想将来自数据库的值转换为double,并且在分割之前,我必须对这些值执行操作

转换为
double

double eqvperiod = Convert.ToDouble(val) / Convert.ToDouble(dpayment);
实际上,您不需要第二次
Convert()
然后
ToString()
然后
Convert()

int val = 0;
double dpayment = 0.0;

if (dt != null && dt.Rows.Count > 0)
{
     dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);

     val= Convert.ToInt32( dt.Rows[3]["value"]);       
}

double eqvperiod = val / dpayment;

分割前转换为双精度:

double eqvperiod = Convert.ToDouble(val) / Convert.ToDouble(dpayment);
实际上,您不需要第二次
Convert()
然后
ToString()
然后
Convert()

int val = 0;
double dpayment = 0.0;

if (dt != null && dt.Rows.Count > 0)
{
     dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);

     val= Convert.ToInt32( dt.Rows[3]["value"]);       
}

double eqvperiod = val / dpayment;
试试这个:

double eqvperiod = (Convert.ToDouble(val) / Convert.ToDouble(dpayment));
试试这个:

double eqvperiod = (Convert.ToDouble(val) / Convert.ToDouble(dpayment));

为什么将val和dpayment声明为字符串?如果希望它们是数值类型,则更改变量声明并删除ToString,即

int val;
double dpayment;

dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);

为什么将val和dpayment声明为字符串?如果希望它们是数值类型,则更改变量声明并删除ToString,即

int val;
double dpayment;

dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);
这个怎么样

double eqvperiod = 0.00;

if (dt != null && dt.Rows.Count > 0)
{
    eqvperiod = Convert.ToDouble(dt.Rows[1]["monthlyamount"]) /
                  Convert.ToInt32(dt.Rows[3]["value"]);
}
这个怎么样

double eqvperiod = 0.00;

if (dt != null && dt.Rows.Count > 0)
{
    eqvperiod = Convert.ToDouble(dt.Rows[1]["monthlyamount"]) /
                  Convert.ToInt32(dt.Rows[3]["value"]);
}

您还可以执行
double.Parse(“0.010”)


这也适用于int、short、decimal以及任何其他数字类型

您也可以执行
double.Parse(“0.010”)


这也适用于int、short、decimal,可能还有任何其他数字类型

为什么要将数据库中的值存储为字符串?当您转换为int或double时,为什么要对其调用toString()?如果您希望eqvperiod是双精度的,为什么要对除法结果调用toString()?为什么要将从数据库中得到的值存储为字符串?当您转换为int或double时,为什么要对其调用toString()?如果希望eqvperiod是双精度的,为什么要对除法结果调用toString();如果(dt!=null&&dt.Rows.Count>0){dpayment=Convert.ToDouble(dt.Rows[1][“monthlyamount”];val=Convert.ToInt32(dt.Rows[3][“value”];}我已经更新了初始化
val
dpayment
的答案,这应该可以修复该错误。我不知道你所说的“使用数据库值”是什么意思。我在双eqvperiod=val/dpayment处遇到了这样的错误“使用未分配的本地变量”;如果(dt!=null&&dt.Rows.Count>0){dpayment=Convert.ToDouble(dt.Rows[1][“monthlyamount”];val=Convert.ToInt32(dt.Rows[3][“value”];}我已经更新了初始化
val
dpayment
的答案,这应该可以修复该错误。我不知道你所说的“使用数据库值”是什么意思。我在双eqvperiod=val/dpayment处遇到了这样的错误“使用未分配的本地变量”;声明值时将其初始化为0,即int val=0;当您声明值时,将其初始化为0,即在双eqvperiod=val/dpayment处出现类似“使用未分配的局部变量”的错误;声明值时将其初始化为0,即int val=0;声明值时将其初始化为0,即。