Your code doesn't make sense at all.
You're trying to convert a bool expression (true/false value) to a decimal:
(Decimal)this.dataGridView1.CurrentRow.Cells[1].Value == 0);
You also don't need the "this" in there at all.
Then you're OR'ing that with another bool expression:
dataGridView1.Rows[i].Cells[1].Value == DBNull.Value
And then you're trying to convert the result to a Decimal, which won't work.
You're going to have to explain what you want this code to do. What you've posted is so confused, it's impossible to figure out what you're trying to do.