Уменьшить вдвое или удвоить числовое значение в NumericUpDown

#c# #.net #winforms #numericupdown

#c# #.net #winforms #numericupdown

Вопрос:

Я создал две кнопки C # в VS 2015.

Как бы мне уменьшить числовое значение и удвоить числовое значение, которое находится в классе NumericUpDown, с помощью кнопки?

  /// <summary>
    /// place single bet, Low
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button4_Click(object sender, EventArgs e)
    {
        CurrentSite.amount =((decimal)nudApiBet.Value);
        CurrentSite.chance = (decimal)(nudApiChance.Value);
        CurrentSite.PlaceBet(false, (decimal)nudApiBet.Value,(decimal)(nudApiChance.Value));
    }

    private void nudApiBet_ValueChanged(object sender, EventArgs e)
    {
        if ((sender as NumericUpDown).Name == "nudApiBet")
        {

            lblApiBetProfit.Text = ((nudApiBet.Value * nudApiPayout.Value) - nudApiBet.Value).ToString("0.00000000"); 
        }
        else if ((sender as NumericUpDown).Name == "nudApiChance")
        {
            decimal payout = (100m - CurrentSite.edge) / (nudApiChance.Value);
            if (nudApiPayout.Value != payout)
                nudApiPayout.Value = payout;
            lblApiBetProfit.Text = ((nudApiBet.Value * payout) - nudApiBet.Value).ToString("0.00000000"); 
        }
        else if ((sender as NumericUpDown).Name == "nudApiPayout")
        {
            decimal chance = (100m - CurrentSite.edge) / (nudApiPayout.Value);
            if (nudApiChance.Value != chance)
                nudApiChance.Value = chance;
            lblApiBetProfit.Text = ((nudApiBet.Value * nudApiPayout.Value) - nudApiBet.Value).ToString("0.00000000"); 
        }
    }
  

Комментарии:

1. Покажите свой код. Это сообщество предназначено для помощи в написании кода, а не для написания вашего кода.

2. @Saurabh srivastava Хорошо, извините за это.

Ответ №1:

Чтобы уменьшить вдвое или удвоить значение Value NumericUpDown , достаточно написать очевидное деление или умножение Value на 2 и присвоить результат Value .

Но результат, который вы видите, будет округлен на основе значения DecimalPlaces . Значение будет содержать фактический результат, но текст показывает округленный результат. Чтобы повысить точность текста, увеличьте DecimalPlaces и установите его 2 равным или больше.

 numericUpDown1.Value /= 2;     // numericUpDown1.Value = numericUpDown1.Value / 2;
numericUpDown1.Value *= 2;     // numericUpDown1.Value = numericUpDown1.Value * 2;
  

Комментарии:

1. К вашему сведению, вы можете принять ответ, нажав на галочку рядом с ответом. Также, когда вы принимаете ответ, было бы здорово, если бы вы также проголосовали за ответ, нажав на стрелку вверх рядом с сообщением. Это совсем не обязательно, но это распространено, разумно и рекомендуется. Хотя вы можете принять только один ответ, вы можете проголосовать за столько ответов, сколько сочтете полезными, включая принятый. Для получения дополнительной информации о том, как работает прием ответов, см. Этот пост .

Ответ №2:

Предполагая, что winforms:

1) перейдите на страницу дизайна вашей формы.

2) дважды щелкните вашу кнопку или перейдите на вкладку «События» в окне свойств элемента управления и найдите событие «Щелчок», дважды щелкните его (окно свойств должно быть справа от вас и содержит молнию, которая является вкладкой событий). Это должно автоматически сгенерировать некоторый код, который выглядит следующим образом:

 private void btnYourButton(object sender, EventArgs e)
        {
         //this is where your code goes
        }
  

3) Напишите код для выполнения нужной функции между фигурными скобками {} . что-то вроде:

 numericUpDown.Value = numericUpDown.Value * 2;