2

我需要有关在 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。我怎样才能把这个编码为 all .02?通过这样做,我可以修改我的类中的方法并删除 100 的除法。

4

3 回答 3

5

对于第一部分,您可以使用以下任一方法:

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

或这个:

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

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

于 2009-06-15T18:02:23.240 回答
2

我也会这样做Decimal.TryParse(string, Decimal)而不是Convert.ToDecimal().

于 2009-06-15T18:03:30.587 回答
1

试试Decimal.Round()

lblSaveInterest.Text = Decimal.Round(getIntGained,2).ToString();
于 2009-06-15T18:01:26.563 回答