试图将字符串转换为double

时间:2011-07-12 10:07:31

标签: c# string datatable double

我有两个值来自数据库我需要将这些值转换为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();

但是它给出了错误

运算符'/'不能用作字符串和字符串类型的操作数。

任何人都可以提供帮助

我的最终结果是我想将来自数据库的值转换为double,我必须对此值进行操作

5 个答案:

答案 0 :(得分:2)

在分割之前转换为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;

答案 1 :(得分:2)

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

int val;
double dpayment;

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

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

这个怎么样?

double eqvperiod = 0.00;

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

答案 4 :(得分:0)

您也可以double.Parse("0.010")

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