由于某种原因,我的数学运算仅返回0。已检查了该值。
int currentSize = 4079;
int totalSize = 500802;
int percentage = ((currentSize/totalSize) * 100);
progdialog.setProgress(percentage);
百分比始终等于百分比。
为什么?
最佳答案
正如其他人指出的那样,问题是整数除法会将小于1的任何值变为零。这发生在乘以100之前。您可以更改操作顺序以获得更好的效果:
int percentage = currentSize * 100 / totalSize;
如果您担心舍入,可以使用
int percentage = (currentSize * 100 + (totalSize >> 1)) / totalSize;
这些避免了使用double或float值的开销。