foreach (DataRow dr in ds.Tables[0].Rows)
{
int num = ((int)dr.ItemArray[0]/14) * 12.5;
}
這將作爲無效轉換返回。沒有轉換,雖然它是一個對象被視爲一個整型。我將如何獲得此轉換的工作?將DataRow.ItemArray [x]轉換爲int
foreach (DataRow dr in ds.Tables[0].Rows)
{
int num = ((int)dr.ItemArray[0]/14) * 12.5;
}
這將作爲無效轉換返回。沒有轉換,雖然它是一個對象被視爲一個整型。我將如何獲得此轉換的工作?將DataRow.ItemArray [x]轉換爲int
聲望太低發表評論。
嘗試:
(int)Math.Round(((int)dr.Item(0)/14) * 12.5)
您可以使用Math.Floor()或Math.Ceiling()如果你需要一個特定的舍入方向。
應該double
沒有int
這就是爲什麼無效轉換錯誤你知道的。
double num = ((int)dr.ItemArray[0]/14) * 12.5;
或
double a = 0;
bool test = double.TryParse(dr.ItemArray[0].ToString(), out a);
if (test)
{
int pot = (int)((a/14) * 12.5);
}
希望幫助,
試試這個
foreach (DataRow dr in ds.Tables[0].Rows)
{
int number1 = 0;
bool canConvert = Int32.TryParse(dr.Item(0), out number1);
if (canConvert == true)
int num = (Convert.ToInt32(dr.Item(0))/14) * 12.5;
}
這仍然呈現一個對象(dr.Item(0))被用作一個Int。演員表無效。 – user1327418
爲什麼不在塊內使用'number1'?並更新您的答案,問題中不再有'dr.Item'。 – Berkay
但是,什麼是dr[0]
價值?
你能使用Convert.ToInt32(dr[0].ToString());
是價值與北歐打字例如5,72
十進制數的文本表示你將不得不作出一個
Convert.ToInt32(dr[0].ToString().Replace(",",".");
那麼,什麼是'dr.Item(0 )'?它是什麼類型?還要注意的是,你正在做的整數除法可能不會給你預期 –
結果你可以用'int.TryParse' https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110)的.aspx – Valentin
這不是你的答案,但是,要查看在數據行的列是博士[0]或博士[「列名」] –