由于某种原因,我的数学只返回0.值已设置,我已检查.
int currentSize = 4079;
int totalSize = 500802;
int percentage = ((currentSize/totalSize) * 100);
progdialog.setProgress(percentage);
Run Code Online (Sandbox Code Playgroud)
百分比总是等于百分比.为什么?
正如其他人所指出的那样,问题是整数除法会将小于1的任何值变为零.这在乘以100之前发生.您可以更改操作的顺序以获得更好的效果:
int percentage = currentSize * 100 / totalSize;
Run Code Online (Sandbox Code Playgroud)
如果你担心四舍五入,你可以使用
int percentage = (currentSize * 100 + (totalSize >> 1)) / totalSize;
Run Code Online (Sandbox Code Playgroud)
这避免了使用double或float值的费用.
| 归档时间: |
|
| 查看次数: |
4688 次 |
| 最近记录: |