Отображение десятичного значения в форме окна - PullRequest
2 голосов
/ 15 июня 2009

Мне нужна помощь с отображением десятичного значения в форме 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 ]

5 голосов
/ 15 июня 2009

Для первой части вы можете использовать это:

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

Или это:

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

РЕДАКТИРОВАТЬ: Во второй части вы можете добавить правило проверки для текстового поля для отображения окна сообщения, если число больше 1,0 (100%), когда текстовое поле теряет фокус.

2 голосов
/ 15 июня 2009

Я бы также сделал Decimal.TryParse(string, Decimal) вместо Convert.ToDecimal().

1 голос
/ 15 июня 2009

Попробуйте Decimal.Round () :

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