1) You need to set the system type of the expression field when you create it, and also set the Format property on its style.
ExpressionFieldDescriptor fd = new ExpressionFieldDescriptor("Cost", "[Price] * [Quantity]", typeof(double));
this.grid.TableDescriptor.ExpressionFields.Add(fd);
GridStyleInfo style = this.grid.TableDescriptor.Columns["Cost"].Appearance.AnyRecordFieldCell;;
style.BackColor = Color.LightGoldenrodYellow;
style.CellType = "Static";
style.HorizontalAlignment = GridHorizontalAlignment.Right;
style.Format ="#.000";
2) You can try code like:
if(e.Table.CurrentRecord != null)
{
Console.WriteLine(e.Table.CurrentRecord.GetValue("CheckBoxCol"));
}