我正在制作的程序的其中一个类是下载管理器。这是我处理下载及其百分比的主要代码。
byte data[] = new byte[1024];
int count;
while ((count = in.read(data, 0, 1024)) != -1)
{
downloadedPerc += (count/getModPackSize())*100;
System.out.println(downloadedPerc);
progressBar.setValue((int) downloadedPerc);
label.setText(downloadedPerc + "%");
fout.write(data, 0, count);
}
downloadedPerc
是 double 类型。作为控制台输出,我一直得到 0.0。为什么会发生这种情况?
我的下载现在非常慢,大约 5kb/秒,如果我删除 % 计算,下载速度会快得多,为什么会这样?
最佳答案
看看这个声明:
downloadedPerc += (count/getModPackSize())*100;
count
应该是 double 类型,或者您应该将分子转换为 double。
例如:downloadedPerc += (count*1.0/getModPackSize())*100;
就可以正常工作。
关于java - 为什么我看不到下载百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347606/