пытаясь преобразовать строку в двойную - PullRequest
0 голосов
/ 12 июля 2011

У меня есть два значения, поступающие из базы данных, мне нужно преобразовать эти значения в двойные, я сделал это так, как я только что упомянул, как локальные переменные

            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();

, но выдала ошибку

operator '/' не может бытьиспользуется в качестве операндов типа строка и строка.

любой может помочь с этим

мой окончательный результат - я хочу преобразовать значения, поступающие из баз данных, в удвоение, и я должен выполнить операциина это значения

Ответы [ 5 ]

2 голосов
/ 12 июля 2011

Почему вы объявили val и dpayment в виде строк? Если вы хотите, чтобы они были числовыми типами, измените объявление переменной и удалите ToString, т.е.

int val;
double dpayment;

dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);
2 голосов
/ 12 июля 2011

Преобразовать в 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;
0 голосов
/ 12 июля 2011

Вы также можете сделать double.Parse("0.010")

, это также работает для целого, короткого, десятичного и, возможно, любых других числовых типов

0 голосов
/ 12 июля 2011

Как насчет этого?

double eqvperiod = 0.00;

if (dt != null && dt.Rows.Count > 0)
{
    eqvperiod = Convert.ToDouble(dt.Rows[1]["monthlyamount"]) /
                  Convert.ToInt32(dt.Rows[3]["value"]);
}
0 голосов
/ 12 июля 2011

Попробуйте это:

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