簡體   English   中英

如何將進度條的值更改為double?

[英]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();

首先使用十進制,而不是雙精度。

二進制浮點和.NET

其次,當您將兩個整數相除時,結果為整數。 因此12/16 = 0 為了使其正常工作,您應該這樣編寫:

var decimalRes = progressBar1.Maximum * (13 / (decimal)16);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM