Có điều gì đó im nhìn, nhưng vấn đề này đã làm tôi bực bội rất nhiều. im cố gắng lấy giá trị từ tập dữ liệu và sau đó sử dụng nó để thực hiện một số phép tính. trong tập dữ liệu được xem là đối tượng, vì vậy tôi cần truyền nó thành int hoặc double. Vì lý do nào đó, tôi nhận được một lỗi ngu ngốc khiến tôi lo lắng. heres mã.lỗi # # đúc (giá trị infinte .... cái gì?)
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();
}
Được ném: "Truyền được chỉ định không hợp lệ". (System.InvalidCastException) khi tạo biểu mẫu một số, phải nhỏ hơn inifnite. Đây là lỗi gây phiền nhiễu. bây giờ tôi lấy dữ liệu từ tập dữ liệu của tôi, dữ liệu lấy dữ liệu từ một thủ tục được lưu trữ. Tôi tin rằng loại trường "Qty" là tiền tệ (yeh, tại sao là qty currency haha, không phải bảng của tôi!). trong chế độ xem dữ liệu của tôi có vẻ như 1.000, đây có phải do chuyển đổi loại không? làm thế nào tôi có thể khắc phục điều này? Rất cám ơn trước!
'float' chắc chắn là một trận đấu tồi tệ hơn 'currency' hoặc' thập phân '. Nhưng bạn âm thanh như nó phải là một số nguyên. Bất kỳ 'float' /' double' nào xảy ra trong một phép tính tiền tệ là một lá cờ đỏ lớn. – CodesInChaos
đồng ý nhưng đây là những giá trị được đặt bởi bảng gốc. im đúc nó vào một giá trị tôi có thể làm việc với, ither đôi hoặc float – lemunk
Và tại sao không 'Decimal'? Bạn có thể sử dụng số thập phân trong C# và chắc chắn đó là lựa chọn tốt hơn so với 'float' hoặc' double' tại đây. – CodesInChaos