我有一个简单的进度条代码
Dim delimiter As Decimal = 0.0
If ListOfUsers.Any() Then
delimiter = 100.0 / ListOfUsers.Count
End If
For Each link As String In ListOfUsers
counter += 1
Dim pValue As Decimal = ProgressBar1.Value
pValue = pValue + delimiter
ProgressBar1.BeginInvoke(Sub() ProgressBar1.Value = pValue)
Next
End If
由于某种原因,它的求和结果不佳。假设我们有ListOfUsers.Count = 3
的分光器将获得正确的值100 / 3 = 33.33
。现在,当它求和时,它得到66.33
而不是66.66
。
我尝试使用Double,但结果是相同的。这可能很简单,我在这里缺少什么?
答案 0 :(得分:3)
进度条的值是一个整数,例如,您将其设置为33.33,但是当您从进度条中读回该值时,它返回的是33,因此将33与33.33相加得出的结果是66.33。 >
查看Progress Bar类,Value属性是一个int 公共财产价值为整数
答案 1 :(得分:0)
尝试将“ Dim pValue十进制= ProgressBar1.Value”放置在foreach循环之外。
就在循环之前。