当试图计算折扣价格返回0这是错误的c#Asp.net

时间:2015-04-22 12:27:50

标签: c# asp.net

当我试图计算折扣价时,它会返回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))); 
 }

2 个答案:

答案 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