Вывод в Double или Float

206
02 мая 2018, 03:03

Пользователь вводит вероятность и сумму ставки(оба натуральные числа). Вывести выигрыш нужно число с плавающей точкой, так же записать в базу данных число с плавающей точкой. О

if (70 <= number2 && number2 < 80)
{
      if (value + 12 <= number2)
      {
            Win(value + 12, number2, Convert.ToDouble(number1 * (100 + 100 - number2) / 100));
      }
      else
      {
            if (value <= number2) Loose(value+12);
            else Loose(value);
      }
}
static void Win(int value, int number2, double win)
{
    string query1 = "UPDATE users SET balance = " + Convert.ToDouble(money - win) + " WHERE userid=" + userid;
    MySqlCommand comm1 = new MySqlCommand(query1, conn);
    comm1.ExecuteNonQuery();
    if (value <= number2)
    {
        vk.Messages.Send(new MessagesSendParams
        {
            ChatId = chat_id,
            Message = "Молодец, ты выиграл " + win + "! Число: " + value
        });
    }
    else
    {
        vk.Messages.Send(new MessagesSendParams
        {
            ChatId = chat_id,
            Message = "Молодец, ты выиграл " + win + "! Число: " + value
        });
    }
}
Answer 1

Думаю, проблема в строке

Convert.ToDouble(number1 * (100 + 100 - number2) / 100)

Смотрите, что происходит: сначала выполняется целочисленное деление, и вычисляется целочисленный результат number1 * (100 + 100 - number2) / 100. Затем этот, уже округлённый до целого числа результат конвертируется в double. Но от этого у целого числа, понятно, не появится дробная часть.

Чтобы получить дробный результат, нужно проводить вычисления в дробных числах. Например, так:

Win(value + 12, number2, number1 * (100 + 100 - number2) / 100.0);
READ ALSO
WPF IObservable&lt;T&gt; как источник данных для ItemsSource

WPF IObservable<T> как источник данных для ItemsSource

У меня есть класс, реализующий интерфейс IObservableВ xaml разметке я указал объект этого класса, как источник данных для списка, однако содержимое...

181
c# winforms получить значение из нового окна

c# winforms получить значение из нового окна

есть 2 формына первой, допустим, кнопка открывающая 2-ю форму, на которой есть ползунок TrackBar

181
Полупрозрачный размытый фон с шумами

Полупрозрачный размытый фон с шумами

когда-то давно уже задавался этим вопросом, но без особых успеховРечь идёт о полупрозрачном размытом фоне, да ещё и с шумами(собственно как...

167
DbSet&lt;T&gt;.Add() vs DbSet&lt;T&gt;.AddAsync()

DbSet<T>.Add() vs DbSet<T>.AddAsync()

Есть отличная статья-ответ, которую наверное можно как некий справочник использовать когда необходимо освежить некоторые моменты в понимании...

185