我想修改应收的金额,然后,下面的折扣相应改变成平均折扣,且单价*折扣得到的会员金额的总和和应收,并且下面的金额数量加起来和应收的一致。就拿上面的图来说吧,比如我把应收改成28000,然后下面的折扣变成0.998,第一列的会员金额变成27664,第一列的会员金额变成336, 27664+336=2800.图片在http://zhidao.baidu.com/question/484963268.html?sort=6#reply-box-1216319793 里。 代码如下: try
{
if (float.Parse(textBox1.Text.Trim().ToString()) > 0)
{
label4.Text = textBox1.Text.Trim();
float summ = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
summ += float.Parse(dataGridView1.Rows[i].Cells[8].Value.ToString());
}
float zhekou = float.Parse(textBox1.Text.Trim()) / summ;
double zhekou1 = Math.Round(zhekou, 4);
for (int i = 0; i < dataGridView1.RowCount; i++)
{
dataGridView1.Rows[i].Cells[7].Value = zhekou1.ToString();
}
//dataGridView1.CurrentRow.Cells[7].Value = textBox1.Text;
textBox1.Focus();
textBox1.Text = "";
//-----------每种条码的总金额---------
float jine;
float jine1 = 0, jine2 = 0, jine3 = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
jine1 = float.Parse(dataGridView1.Rows[i].Cells[6].Value.ToString().Trim());
jine2 = float.Parse(dataGridView1.Rows[i].Cells[7].Value.ToString().Trim());
jine3 = float.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString().Trim());
jine = jine2 * jine1 * jine3;
int quz = Convert.ToInt32(jine);
dataGridView1.Rows[i].Cells[9].Value = quz.ToString();
dataGridView1.Rows[i].Cells[8].Value = jine1 * jine3;
} //-------------显示商品信息------------ label12.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString().Trim();
label13.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString().Trim();
label14.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString().Trim();
label15.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString().Trim();
//-------显示买的产品总件数-------------
string l;
int b = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
l = dataGridView1.Rows[i].Cells[4].Value.ToString().Trim();
b += int.Parse(l);
}
label16.Text = b.ToString();
//----------------应付款--------
string p;
float c = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
p = dataGridView1.Rows[i].Cells[9].Value.ToString().Trim();
c += float.Parse(p);
}
if (float.Parse(label4.Text) < c)
{
dataGridView1.Rows[0].Cells[9].Value = int.Parse(dataGridView1.Rows[0].Cells[9].Value.ToString()) - 1;
c = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
p = dataGridView1.Rows[i].Cells[9].Value.ToString().Trim();
c += float.Parse(p);
} }
int quzheng = Convert.ToInt32(c);
label4.Text = quzheng.ToString();
Shishou = c;//客人要交的钱数,public static类
//--------------------显示优惠金额-------------- float Ydanjia, Youhui = 0, Yshuliang;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
Ydanjia = float.Parse(dataGridView1.Rows[i].Cells[6].Value.ToString().Trim());
Yshuliang = float.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString().Trim());
Youhui += Ydanjia * Yshuliang;
}
Youhui += -quzheng;
label17.Text = Youhui.ToString();
textBox1.Focus();
textBox1.Text = "";
}
else
{
textBox1.Focus();
textBox1.Text = "";
MessageBox.Show("输入的不是有效的数字,请重新输入。");
} }
catch
{
textBox1.Focus();
textBox1.Text = "";
MessageBox.Show("输入的不是有效值,请重新输入。");
}我这种写法,有时误差会有一块钱的误差,请高手帮忙看看。
{
if (float.Parse(textBox1.Text.Trim().ToString()) > 0)
{
label4.Text = textBox1.Text.Trim();
float summ = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
summ += float.Parse(dataGridView1.Rows[i].Cells[8].Value.ToString());
}
float zhekou = float.Parse(textBox1.Text.Trim()) / summ;
double zhekou1 = Math.Round(zhekou, 4);
for (int i = 0; i < dataGridView1.RowCount; i++)
{
dataGridView1.Rows[i].Cells[7].Value = zhekou1.ToString();
}
//dataGridView1.CurrentRow.Cells[7].Value = textBox1.Text;
textBox1.Focus();
textBox1.Text = "";
//-----------每种条码的总金额---------
float jine;
float jine1 = 0, jine2 = 0, jine3 = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
jine1 = float.Parse(dataGridView1.Rows[i].Cells[6].Value.ToString().Trim());
jine2 = float.Parse(dataGridView1.Rows[i].Cells[7].Value.ToString().Trim());
jine3 = float.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString().Trim());
jine = jine2 * jine1 * jine3;
int quz = Convert.ToInt32(jine);
dataGridView1.Rows[i].Cells[9].Value = quz.ToString();
dataGridView1.Rows[i].Cells[8].Value = jine1 * jine3;
} //-------------显示商品信息------------ label12.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString().Trim();
label13.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString().Trim();
label14.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString().Trim();
label15.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString().Trim();
//-------显示买的产品总件数-------------
string l;
int b = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
l = dataGridView1.Rows[i].Cells[4].Value.ToString().Trim();
b += int.Parse(l);
}
label16.Text = b.ToString();
//----------------应付款--------
string p;
float c = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
p = dataGridView1.Rows[i].Cells[9].Value.ToString().Trim();
c += float.Parse(p);
}
if (float.Parse(label4.Text) < c)
{
dataGridView1.Rows[0].Cells[9].Value = int.Parse(dataGridView1.Rows[0].Cells[9].Value.ToString()) - 1;
c = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
p = dataGridView1.Rows[i].Cells[9].Value.ToString().Trim();
c += float.Parse(p);
} }
int quzheng = Convert.ToInt32(c);
label4.Text = quzheng.ToString();
Shishou = c;//客人要交的钱数,public static类
//--------------------显示优惠金额-------------- float Ydanjia, Youhui = 0, Yshuliang;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
Ydanjia = float.Parse(dataGridView1.Rows[i].Cells[6].Value.ToString().Trim());
Yshuliang = float.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString().Trim());
Youhui += Ydanjia * Yshuliang;
}
Youhui += -quzheng;
label17.Text = Youhui.ToString();
textBox1.Focus();
textBox1.Text = "";
}
else
{
textBox1.Focus();
textBox1.Text = "";
MessageBox.Show("输入的不是有效的数字,请重新输入。");
} }
catch
{
textBox1.Focus();
textBox1.Text = "";
MessageBox.Show("输入的不是有效值,请重新输入。");
}我这种写法,有时误差会有一块钱的误差,请高手帮忙看看。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货