На с#, ошибка, не удаётся преобразовать из double в int

if(textBox1.Text == "" || textBox2.Text == "") MessageBox.Show("Are you on drugs?");
            Random rnd12 = new Random();
            double v = rnd12.Next(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));
            textBox3.Text = $"{v}";

Ответы (1 шт):

Автор решения: frozengrimm

Если я правильно понимаю, нужно сгенерировать случайное число между двумя double. А метод rnd12.Next работает только с int.

Решение лежит на англо-stackoverflow: https://stackoverflow.com/questions/17786771/random-double-between-given-numbers

Код будет выглядеть примерно так:

  if (textBox1.Text == "" || textBox2.Text == "") MessageBox.Show("Are you on drugs?");
  else {
    NumberFormatInfo nfi = new NumberFormatInfo();
    nfi.NumberDecimalSeparator = "."; // указываем разделитель для конвертации
    double value1 = Convert.ToDouble(textBox1.Text, nfi);
    double value2 = Convert.ToDouble(textBox2.Text, nfi);
    Random rnd12 = new Random();
    double random = rnd12.NextDouble();
    double v = value1 + (random * (value2 - value1));
  }
→ Ссылка