試探一下我可以忽略的東西,但是這個問題讓我非常惱火。 即時嘗試從數據集中獲取一個值,然後用它來做一些計算。數據集中的 被視爲一個對象,所以我需要將它轉換爲int或double。 出於某種原因,我得到一個愚蠢的錯誤,讓我的神經。繼承人的代碼。c#轉換錯誤(infinte值....什麼?)
private void SpendsAnalysis()
{
float tempQty = 0;
float tempPrice = 0;
double tempTot = 0;
double total = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
tempQty = (float)row.Cells["Qty"].Value;
tempPrice = (float)row.Cells["Unit"].Value;
tempTot = tempQty * tempPrice;
total += tempTot;
}
textBox7.Text = total.ToString();
}
引發:「指定的轉換無效。」 (System.InvalidCastException) 當鑄造一個數字時,必須小於inifnite。這是我得到的令人討厭的錯誤。現在我從我的數據集中獲取數據,從存儲過程獲取數據。 我相信「數量」字段類型是貨幣(是的,爲什麼是數量貨幣哈哈,而不是我的表!)。在我的datagrid視圖中它看起來像1.000,這是由於類型轉換?我將如何糾正這一點? 很多感謝提前!
'float'肯定比'currency'或'小數較差的匹配'。但你聽起來應該是一個整數。貨幣計算中出現的任何'float'/'double'都是一個大紅旗。 – CodesInChaos
同意,但這些是由原始表格設置的值。即時將它鑄造爲一個值,我可以使用它,雙倍或浮動 – lemunk
爲什麼不是'十進制'?你可以在C#中使用十進制數,這當然是比'float'或'double'更好的選擇。 – CodesInChaos