[英]How to change the value of a progress bar to a double?
我試圖在進度條的進度的特定增量處播放聲音。 進度條的最大值為80,並且由間隔為100(因此總持續時間為8秒)的計時器控制。 在第一種情況下,聲音播放是因為80/16 = 5(這是整數),但沒有其他聲音播放。 如何將進度條的值轉換為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();
首先使用十進制,而不是雙精度。
其次,當您將兩個整數相除時,結果為整數。 因此12/16 = 0
。 為了使其正常工作,您應該這樣編寫:
var decimalRes = progressBar1.Maximum * (13 / (decimal)16);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.