在Windows窗体上显示小数值

时间:2009-06-15 17:59:50

标签: c# .net decimal

我需要帮助在Windows窗体上显示小数值。

我有一个课程,有一个计算兴趣金额的方法,如下所示。

public virtual decimal CalculateInterest()
{
    interest = (interestRate/100) * base.getBalance();
    return interest;
}

在我的主窗体中,单击按钮时使用此方法,如下所示。

private void btnCalcInt_Click(object sender, EventArgs e)
{
   decimal endBalance;
   decimal intRate;
   decimal getIntGained;

   endBalance = Convert.ToDecimal(lblSaveEndingBalance.Text);
   intRate = Convert.ToDecimal(lblSaveIntRate.Text);
   SavingsAccount CalcInt = new SavingsAccount(endBalance, intRate);

   getIntGained = CalcInt.CalculateInterest();
   lblSaveInterest.Text = getIntGained.ToString();
}

在最后一行(lblSaveInterest.Text = getIntGained.ToString();)中,如何告诉它在小数位后只显示2个位置?

或者,有人可以帮助解决这个问题吗?在我的Windows窗体上,我有一个表示百分比的文本框。目前,用户可以输入值2.02。如何将此代码仅编码为.02?通过这样做,我可以修改我的类中的方法并删除100的除法。

3 个答案:

答案 0 :(得分:5)

对于第一部分,您可以使用以下任何一个:

lblSaveInterest.Text = getIntGained.ToString("#,###.00");

或者这个:

lblSaveInterest.Text = getIntGained.ToString("G");

编辑:对于第二部分,您可以为文本框添加验证规则,以便在文本框失去焦点时,如果数字大于1.0(100%),则显示消息框。

答案 1 :(得分:2)

我也会Decimal.TryParse(string, Decimal)代替Convert.ToDecimal()

答案 2 :(得分:1)

尝试Decimal.Round()

lblSaveInterest.Text = Decimal.Round(getIntGained,2).ToString();