Я пытаюсь воспроизвести звук с определенным шагом хода выполнения. Индикатор выполнения имеет максимум 80 и управляется таймером, который имеет интервал 100 (при этом общая продолжительность составляет 8 секунд). В первом случае звук воспроизводится, потому что 80/16 = 5, который является целым числом, но больше ничего не играет. Как преобразовать значение progressbar в double? Или это даже правильный трек? Спасибо!Как изменить значение индикатора выполнения на двойной?
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (1/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (2/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (3/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (4/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (5/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (6/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (7/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (8/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (9/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (10/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (11/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (12/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (13/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (14/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (15/16)))
hiphopkick.Play();
if (checkBox1.Checked && progressBar1.Value == (progressBar1.Maximum * (16/16)))
hiphopkick.Play();
Вам нужно узнать о номерах. Все ваши фракции равны 0, потому что вы не понимаете целочисленное деление. И тестирование поплавков для равенства станет следующей причиной ошибки. – TaW
Стандартная ловушка C#, вы используете целочисленное деление, чтобы вы всегда получали 0. Вместо этого используйте 1.0/16. Удаление скобок тоже будет работать. –
Возможно, эта ссылка поможет вам о том, как это работает. http://stackoverflow.com/a/23822781/4323328 – tdog