在一个应用程序中,我正在使用Winforms
,我试图将datagridview中的两个单元格相乘并获得总值(数量 * 价格=总)问题是结果不精确
示例:
就像你在屏幕截图上看到的价格是3.469,99
,但是当我乘以一个1
得到3.470,00
。必须是3.469,99
我的代码如下:
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows.Count > 0)
{
if (e.ColumnIndex == 1)
{
if (int.TryParse(dataGridView1.Rows[e.RowIndex].Cells[1].Value?.ToString(), out int qty))
{
var price = dataGridView1.Rows[e.RowIndex].Cells[2].Value;
var total = dataGridView1.Rows[e.RowIndex].Cells[3];
decimal result = qty * (decimal) price; // <--- HERE
total.Value = result;
}
}
}
}
更新:
1条答案
按热度按时间rslzwgfq1#
“Total”列的DataType很可能是
int
,但应该是decimal
。例如,这将创建与屏幕截图相同的行为:
另一种可能性是你的价格是3469.99499999995。
这导致价格为3469.99美元,总额为3470.00美元。
例如: