Почему событие "форматирование ячейки"не работает для форматирования ячейки до 2 десятичных знаков?
У меня есть проблема в формате столбца/ячейки моего datagridview, у меня есть ячейка ["Close"], которая содержит плавающие данные, затем я буду минус данные в ячейке ["Close"] и помещу результат в ячейку ["Up"], но мой результат не в десятичном виде, я стараюсь всеми способами, например:" N2", DefaultStyleFormat, CellFormatting, для меня никто не работает.
Что я уже пробовал:
Let me show my code: <pre lang="c#"><pre>private void FrmAnalisis_Load(object sender, EventArgs e) { conn = new SqlConnection("Server=localhost;Data Source=localhost; Database=dbSaham;Integrated Security=SSPI"); conn.Open(); } private void btnMulaiAnalisis_Click(object sender, EventArgs e) { string dt1 = dtpMulai.Value.Date.ToString(); string dt2 = dtpAkhir.Value.Date.ToString(); SqlCommand cmd = new SqlCommand("SELECT * From UNICJKtutup Where Date BETWEEN @date AND @date2", conn); cmd.Parameters.AddWithValue("@date", dtpMulai.Value.Date); cmd.Parameters.AddWithValue("@date2", dtpAkhir.Value.Date); if (dtpMulai.Value.Date != dtpAkhir.Value.Date) { ds = new DataSet(); da = new SqlDataAdapter(cmd); da.Fill(ds, "UNICJKtutup"); dgvAnalisis.ReadOnly = true; dgvAnalisis.AllowUserToAddRows = false; dgvAnalisis.AllowUserToDeleteRows = false; dgvAnalisis.MultiSelect = true; dgvAnalisis.DataSource = ds.Tables["UNICJKtutup"]; this.dgvAnalisis.CellFormatting += new DataGridViewCellFormattingEventHandler(dgvAnalisis_CellFormatting);//this i MARK the event } else MessageBox.Show("Tanggal Unvalid\nHarap pilih tanggal yang berbeda", "Informasi"); if (dgvAnalisis.DataSource == null) return; var rowLen = dgvAnalisis.Rows.Count; foreach (DataGridViewRow dr in dgvAnalisis.Rows) { if (dr.Index + 1 == rowLen) break; var nextRow = dgvAnalisis.Rows[dr.Index + 1]; string col1 = dr.Cells["Close"].Value.ToString(); string col2 = nextRow.Cells["Close"].Value.ToString(); float val1 = 0, val2 = 0; if (float.TryParse(col1, out val1) && float.TryParse(col2, out val2)) { if (val1 < val2) { nextRow.Cells["Up"].Value = val2 - val1; nextRow.Cells["Down"].Value = 0; } else if (val1 > val2) { nextRow.Cells["Down"].Value = val1 - val2; nextRow.Cells["Up"].Value = 0; } else { nextRow.Cells["Up"].Value = 0; nextRow.Cells["Down"].Value = 0; } } } } private void dgvAnalisis_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) //this too the event that didn't work { if (e.ColumnIndex == 0 && e.RowIndex != this.dgvAnalisis.NewRowIndex) { double d = double.Parse(e.Value.ToString()); e.Value = d.ToString("0.00##"); } }