2016-10-09 11 views
0

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

Как бы уменьшить числовое значение, и в два раза числовое значение, которое находится в классе 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"); 
     } 
    } 
+0

Показать ваш код. Это сообщество предназначено для помощи в коде, не записывая ваш код. –

+0

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

ответ

2

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

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

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

JFYI, вы можете принять ответ, нажав галочку рядом с ответом. Также, когда вы принимаете ответ, было бы здорово, если бы вы также проголосовали за ответ, нажав стрелку вверх рядом с сообщением. Это не обязательно, но это общепринято, разумно и рекомендуется. Хотя вы можете принять только один ответ, вы можете выдвинуть столько ответов, сколько найдете, в том числе принятое. Для получения дополнительной информации о том, как работает прием ответов, см. Это [сообщение] (http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow). –

0

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

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

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

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

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

numericUpDown.Value = numericUpDown.Value * 2;