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

raw*_*wan 2 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))); 
 }
Run Code Online (Sandbox Code Playgroud)

Hei*_*nzi 11

这里:

(Convert.ToInt16(TxtDiscountPER.Text)) / 100
Run Code Online (Sandbox Code Playgroud)

你使用整数除法Int16(10)除以Int32(100),得分.引用MSDN:0

除以两个整数后,结果始终为整数.例如,7/3的结果是2.要确定7/3的余数,请使用余数运算符(%).要获得商作为有理数或分数,请给予被除数或除数类型float或double类型.

我建议您使用十进制数据类型而不是float或double,因为十进制更适合货币值:

(Convert.ToDecimal(TxtDiscountPER.Text)) / 100
Run Code Online (Sandbox Code Playgroud)