我正在嘗試在進度條進度的特定增量處進行合理的播放。進度條最大爲80,由間隔爲100的計時器控制(因此總計持續時間爲8秒)。在第一種情況下,聲音播放是因爲80/16 = 5,這是一個整數,但沒有別的播放。如何將進度條值轉換爲雙精度值?或者甚至是正確的軌道?謝謝!如何將進度條的值更改爲雙精度?
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