当我试图计算折扣价时,它会返回0,这是错误的。 总数为100,折扣百分比为10%。我对这个公式很有把握,但它会继续返回0。
我的c#代码:
protected void TxtDiscountPER_TextChanged(object sender, EventArgs e)
{
TxtDiscountAMT.Text = Convert.ToString(((Convert.ToInt16(TxtDiscountPER.Text)) / 100) * (Convert.ToInt16(TxtTotalAmt.Text)));
}
答案 0 :(得分:11)
下面:
(Convert.ToInt16(TxtDiscountPER.Text)) / 100
您使用整数除法将Int16
(10)除以Int32
(100),产生0
。引用MSDN:
分割两个整数时,结果始终为整数。例如,7/3的结果是2.要确定7/3的余数,请使用余数运算符(%)。要获得商作为有理数或分数,请给予被除数或除数类型float或类型double。
我建议您使用decimal data type而不是float或double,因为十进制更适合货币值:
(Convert.ToDecimal(TxtDiscountPER.Text)) / 100
答案 1 :(得分:0)
The division will return a decimal value. You are converting the division to Int16
. So it will always return an INT
value which is 0