2011-07-12 43 views
0

我有兩個值從數據庫中來,我需要這些值轉換爲雙我有這樣 我ahve剛纔提到的像這只是局部變量試圖將字符串轉換爲加倍

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

但它給出錯誤

運算符'/'不能用作字符串和字符串類型的操作數。

任何一個可以幫助這個

我最後的結果是我要轉換的值從數據庫來翻一番,我必須做的業務在此值

+0

爲什麼要儲存說出來你的數據庫作爲字符串的值?當你轉換爲int或double時,爲什麼你要調用toString()呢?如果你希望eqvperiod是一個double,爲什麼你要在除法結果上調用toString()? –

回答

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; 
+0

我在double eqvperiod = val/dpayment上得到了像這樣的「使用未分配的本地變量」的錯誤; (dt!= null && dt.Rows.Count> 0) – user682417

+0

我不能使用數據庫值,如果(dt!= null && dt.Rows.Count> 0) dpayment = Convert.ToDouble(dt.Rows [1] [「monthlyamount」]); val = Convert.ToInt32(dt.Rows [3] [「value」]); } – user682417

+0

我已經更新了初始化'val'和'dpayment'的答案,它可以解決這個錯誤。我不確定「使用數據庫值」是什麼意思。 – dahlbyk

0

試試這個:

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

你爲什麼要宣佈VAL和dpayment爲字符串?如果你希望它們是數字類型,那麼更改變量聲明並刪除ToString,即

int val; 
double dpayment; 

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

我在double eqvperiod = val/dpayment上得到了這樣的錯誤「使用未分配的本地變量」; – user682417

+1

聲明它們時將值初始化爲0,即int val = 0; – DoctorMick

+0

當您聲明它們時,將值初始化爲0,即 – DoctorMick

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"]); 
} 
0

你也可以做double.Parse("0.010")

這也適用於整型,短,小數,大概任何其他數值類型